¿Hay alguna forma de saber si un elemento está oculto o está en proceso de ocultarse (mediante una animación)? La única forma en que puedo pensar para hacerlo es almacenar una bandera en el elemento data
cuando llamas al show
o hide
, pero me preguntaba si había otra manera.selector jQuery para verificar si un elemento se está animando a oculto
Respuesta
de que tienes el escondida con $(":hidden")
y luego los Animación con $(":animated")
y con la verificación de la :animated
.queue()
si se tiene el método hide
interior.
Comprobé la cola con este código: '$ el.slideUp ('slow'); console.log ($ el.queue()) 'y todo lo que tenía en ella era' ["en progreso"] ' – nickf
Bueno, eso son todos los indicadores que puedo darte - probablemente si revisaste la fuente de jQuery podrías encontrar una manera para leer de las entradas del objeto de cola. –
podrías hacer un selector de jQuery personalizado para ello
(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 (que puede requerir algunas pruebas más, aunque).
Entonces sólo tiene que añadir :hiding
que coincidirá con elementos ocultos, y los elementos que actualmente están siendo animados a 0. Ahora única elementos de los partidos que están desapareciendo, no aparece.
este es un buen comienzo, pero creo que llegará a problemas cuando haya más de un elemento. Vea esto: http://jsbin.com/ojuro3/2/edit - haga clic en los párrafos para que se desvanezcan y desaparezcan. Cada segundo, los que se esconden son de color rojo, y los que no se esconden son azules. – nickf
@nickf ¿Qué pasa con esto, si elimina el elemento de verificación http://jsbin.com/ojuro3/3/edit – alex
Puede comprobar si el elemento está animado como esto:
if(!$('.your-element').is(':animated')) {
// do animation...
} else {
return false;
}
- 1. JQuery: compruebe si un elemento está oculto del usuario
- 2. ¿Cómo puedo verificar si un UIView está animando?
- 3. Obteniendo un selector jQuery para un elemento
- 4. ¿Cómo verificar si jQuery datepicker está vacío?
- 5. Use JQuery para verificar si el elemento tiene un borde?
- 6. ¿Cómo verificar si un complemento jQuery UI está conectado a un elemento?
- 7. Detectar si el padre html está oculto
- 8. ¿Cómo pruebo si algo está oculto con jQuery?
- 9. ¿Cómo verificar si un delegado responde a un selector?
- 10. Ignorar .NET validadores si el elemento está oculto (display: none)
- 11. jQuery Validation plugin: cómo verificar si un elemento es válido?
- 12. ¿Se ha disparado el UIControlEventValueChanged cuando se está animando UISlider?
- 13. Cómo encontrar el primer elemento que está oculto por JQuery
- 14. Desplácese sobre un elemento oculto para mostrarlo
- 15. C# comprobar si un directorio está oculto?
- 16. Jquery obteniendo la altura de un elemento oculto
- 17. ¿Cómo verificar si un elemento de almacenamiento está configurado?
- 18. ¿Cómo puedo verificar si un complemento jQuery está cargado?
- 19. selector jQuery para un elemento que contiene texto directamente?
- 20. Comprobando si un selector jQuery no encuentra ningún resultado
- 21. Verificar si el elemento está siendo animado CSS3
- 22. ¿Cómo puedo verificar si un elemento jQuery está en el DOM?
- 23. ¿Elemento o clase selector LIKE para jQuery?
- 24. ¿Cómo puedo saber si un elemento coincide con un selector?
- 25. jQuery animando a la posición original
- 26. ¿Hay un selector jQuery para verificar si una etiqueta tiene algún atributo?
- 27. Comprueba si un elemento DOM dado está listo
- 28. alternativa para verificar, si un valor está en un conjunto
- 29. jQuery: ¿Cómo comprobar si el ratón está sobre un elemento
- 30. cómo saber si un elemento ya está presionado jquery
Cómo acabaste la aplicación de esta? – alex
Estableciendo un indicador en 'datos' cuando se inicia la animación, y buscando nuevamente esa marca. – nickf
@nickf Ah, una solución, ¡pero no tan elegante! Me encantaría verte hacer que el selector personalizado funcione :) – alex