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?

È stato utile?

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");
    }
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top