C'è un modo per dire se un elemento è nascosto o è attualmente in fase di occultamento (tramite un'animazione)? L'unico modo che posso pensare è di memorizzare una bandiera nell'elemento data
quando si chiama show
o hide
, ma mi chiedevo se c'era un altro modo?Selettore jQuery per controllare se un elemento si anima in nascosto
risposta
Si ottiene quella nascosta con $(":hidden")
e poi quelle che animano con $(":animated")
e con il controllo del :animated
.queue()
se ha il metodo hide
all'interno.
Ho controllato la coda con questo codice: '$ el.slideUp ('slow'); console.log ($ el.queue()) 'e tutto ciò che conteneva era' ["in corso"] ' – nickf
Beh, questo è tutto ciò che posso darti - probabilmente se hai controllato la fonte di jQuery potresti trovare un modo leggere delle voci dall'oggetto coda. –
si potrebbe fare un selettore jQuery personalizzato per esso
(function($) {
var endOpacity,
oldStep = jQuery.fx.step.opacity;
$.fx.step.opacity = function(fx) {
endOpacity = fx.end;
return oldStep(fx);
};
$.expr[':'].hiding = function(obj){
var $this = $(obj);
return ($this.is(':hidden') || ($this.is(':animated') && endOpacity === 0));
};
})(jQuery);
This worked for me (si può richiedere un po 'di test però).
Quindi basta aggiungere :hiding
abbinerà elementi nascosti, e gli elementi che sono attualmente in corso di animazione a 0. Sarà ora solo partita elementi che stanno scomparendo, non apparire.
questo è un buon inizio, ma penso che avrai problemi quando c'è più di un elemento. Vedi questo: http://jsbin.com/ojuro3/2/edit - fai clic sui paragrafi per farli dissolvere in dissolvenza. Ogni secondo, i nascondigli sono colorati in rosso e quelli che non nascondono in blu. – nickf
@nickf Che dire di questo, se rimuovi l'elemento di controllo http://jsbin.com/ojuro3/3/edit – alex
È possibile controllare se l'elemento è animato come questo:
if(!$('.your-element').is(':animated')) {
// do animation...
} else {
return false;
}
- 1. JQuery: controllare se un elemento è nascosto dall'utente
- 2. border-radius + overflow: nascosto quando si anima con jQuery
- 3. Ottenere un selettore jQuery per un elemento
- 4. Jquery ottenendo l'altezza di un elemento nascosto
- 5. Selettore jQuery per un elemento MANCANTE un elemento figlio
- 6. Controllare div è nascosto utilizzando jQuery
- 7. jquery: controllare se la stringa esiste in elemento, tornare booleano
- 8. Come posso sapere se un elemento corrisponde a un selettore?
- 9. Controllare se elemento è prima o dopo un altro elemento in jQuery
- 10. In jQuery, come posso selezionare un elemento nascosto?
- 11. jQuery: come si anima una rotazione div?
- 12. Jquery: se l'elemento è nascosto, fai azione?
- 13. jQuery si anima tra due diverse classi CSS?
- 14. Controllare se un ComboBox contiene elemento
- 15. Controllare se un'opzione esiste nel selezionare elemento senza JQuery?
- 16. JQuery controllare per vedere se Div è mostrato
- 17. Controllare se un elemento esiste già in un JComboBox?
- 18. Mentre l'elemento si anima, animane un altro
- 19. JQuery 'live' per selettore?
- 20. Verifica se un selettore jQuery non trova alcun risultato
- 21. jquery validate - valido se il campo nascosto ha un valore
- 22. Nascondere un elemento nascosto ... Quanto male?
- 23. Come ottenere un elemento DOM da un selettore JQuery
- 24. Come si anima un NSLayoutConstraint in Swift?
- 25. jQuery selettore per "Html.CheckBoxFor"
- 26. jquery, mostra un elemento nascosto con una dissolvenzaIn
- 27. Controllare se un elemento è in std :: initializer_list
- 28. jQuery: c'è un modo per creare un selettore figlio ricorsivo?
- 29. Controllare se l'elemento esiste
- 30. Verifica se esiste un elemento in Goniometro
Come hai fatto a finire l'attuazione del presente? – alex
Impostazione di un flag in 'data' all'avvio dell'animazione e controllo di nuovo per quel flag. – nickf
@nickf Ah, una soluzione, ma non così elegante! Mi piacerebbe vederti lavorare con il selettore personalizzato :) – alex