focusOut ma solo se non è concentrata in un altro elemento
-
25-10-2019 - |
Domanda
Ho il seguente jQuery:
$(document).ready(function()
{
$("#Button1").click(function () {
$("#divCompany1").slideToggle("fast");
});
$("#Button1").focusout(function () {
$("#divCompany1").slideUp("fast");
});
$("#divCompany1").focusout(function () {
$("#divCompany1").slideUp("fast");
});
});
La seguente è una descrizione di ciò che voglio che accada:
- Se l'utente si concentra su Button1 ma poi perde l'attivazione voglio divCompany1 alla diapositiva
- Se l'utente si concentra su divCompany1 ma poi perde l'attivazione voglio divCompany1 a scivolare soltanto
- L'eccezione a quanto sopra è che se perde Button1 fuoco ma divCompany1 guadagni allo stesso tempo non voglio niente accada
Questo permette in sostanza all'utente di andare tra la Button1 e divCompany1 senza divCompany1 scorrevole.
Ho cercato in giro per un po 'e non ha trovato nulla di utilizzo, sto pensando theres probabilmente la necessità di una bandiera o qualcosa del genere.
Tutte le idee?
Soluzione 2
Va bene mi sembra di aver risolto:
$("#Button1").click(function () {
$("#divCompany1").slideToggle("fast");
$("#<%=lstBoxCompany.ClientID%>").focus();
});
$("#divCompany1").focusout(function () {
$("#divCompany1").slideUp("fast");
});
Invece di preoccuparsi di focusOut per Button1
ho semplicemente impostare la messa a fuoco l'elemento che volevo all'utente di andare a (divCompany1
) e solo dopo questa attenzione è andata devo nasconderlo.
funziona come previsto.
Altri suggerimenti
Questa domanda dice come rilevare se un elemento ha lo stato attivo: Utilizzo di jQuery per verificare se un ingresso è attivo
Poi tutto quello che dovete fare è:
$("#Button1").focusout(function () {
if (!$("#divCompany1").is(":focus")) {
$("#divCompany1").slideUp("fast");
}
});