jQuery选择器,用于检查元素是否为隐藏动画
有没有办法判断元素是隐藏还是当前正在隐藏(通过动画)? 我能想到的唯一方法是在调用show
或hide
时在元素的data
存储一个标志,但我想知道是否还有另一种方法?
你能为它做一个自定义的jQuery选择器吗?
(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);
这对我有用 (虽然可能需要更多测试)。
所以只需添加:hiding
它将匹配隐藏的元素,以及当前被动画为0的元素。它现在只匹配正在消失但不出现的元素。
您可以使用$(":hidden")
隐藏其中一个,然后使用$(":animated")
并使用:animated
检查.queue()
是否内置了hide
方法。
您可以检查元素是否像这样动画:
if( !$('.your-element').is(':animated') ) { // do animation... } else { return false; }