有没有办法判断元素是隐藏的还是当前正在隐藏(通过动画)?我认为这样做的唯一方法是在拨打show
或hide
时在元素的data
中存储标志,但我想知道是否有其他方法?jQuery选择器检查元素是否隐藏动画
7
A
回答
1
你得到隐藏的一个与$(":hidden")
,然后将那些动画与$(":animated")
并与:animated
检查,如果它有hide
方法里面.queue()
。
+0
我用这段代码检查了队列:'$ el.slideUp('slow'); console.log($ el.queue())'它的所有内容都是'[“进行中”]' – nickf 2010-05-12 01:36:04
+0
那么这就是我可以给你的所有指针 - 可能如果你检查了jQuery源代码,你可能会找到一种方法从队列对象中读取条目。 – 2010-05-12 01:47:20
3
你能否做一个自定义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);
This worked for me(这可能需要一些更多的测试虽然)。
所以只需加上:hiding
它会匹配隐藏的元素和当前正在动画为0的元素。它现在只会正在消失,未出现的匹配元素。
1
您可以检查元素的动画这样的:
if(!$('.your-element').is(':animated')) {
// do animation...
} else {
return false;
}
相关问题
- 1. jquery检查元素是否被隐藏(连续)
- 2. JQuery:检查用户是否隐藏元素
- 3. 用jquery选择隐藏的元素值
- 4. jQuery选择了隐藏元素与
- 5. 如何检查是否未选择jQuery选项卡元素
- 6. 检查元素是隐藏在ExtJS的
- 7. jquery检查元素是否有元素
- 8. jquery:选择器和隐藏
- 9. 隐藏动态类与jQuery和选择元素
- 10. jquery选择器切换点击隐藏/显示子元素
- 11. jQuery:检查元素正在动画
- 12. 如何检查父母是否隐藏子元素?
- 13. jQuery如何不断检查元素是隐藏/可见的?
- 14. 检测HTML元素是否滚动超出隐藏溢出
- 15. 是隐藏选择器返回true为空元素
- 16. 如何检查2个jQuery选择器是否指向相同的元素?
- 17. jQuery无法根据选择选项显示/隐藏元素
- 18. jQuery选择为隐藏要素除了
- 19. CSS选择器在检查元素
- 20. 元素存在但隐藏硒检查
- 21. 检查是否指定的元素是内部选择
- 22. jQuery检查元素是否存在onClick
- 23. jquery - 检查元素是否为空
- 24. jQuery选择。查找元素
- 25. 查找和隐藏元素(jQuery)
- 26. 检查是否使用jQuery选择ID
- 27. Jquery:当选择特定的选择选项时隐藏html元素
- 28. 是否有一个指令允许在选择选项后隐藏select元素?
- 29. 隐藏来自“检查元素”的隐藏输入字段
- 30. jQuery:不能自动隐藏元素
你怎么会实现这个? – alex 2010-06-03 05:54:48
动画开始时在'data'中设置一个标志,并再次检查该标志。 – nickf 2010-06-03 07:14:26
@nickf啊,解决方案,但不那么优雅!我很想看到你得到自定义选择工作:) – alex 2010-06-03 14:37:54