2010-10-25 27 views
5

当我点击#button时,它仍然在执行'do something',即使.wrapper正在动画并且.wrapper span不可见。所以它不遵守规则。怎么了?jquery:this.not(':animated')&& that.is(':visible')不遵循规则,语法问题?只有几行代码

$('#button').click(function(){ 
    if(
    $('.wrapper').not(':animated') && $('.wrapper span').is(':visible') 
) { 
    //do something 
    } 
}) 
+1

'未( ':动画')'不是检查,但是一个选择器。所以如果所有''.wrapper''都是动画的,它会返回'[]' – glebm 2010-10-25 06:22:29

回答

4

这里有一个working demo

$('#button').click(function(){ 
if( $('.wrapper:animated').length>0) 
{ 
$(".wrapper").text("animating") ; 
} 
    if(
    $('.wrapper:animated').length<1) { 
$(".wrapper").text("not animating") ; 
    } 
}) 
6

这是一个有点清洁无if语句。 working demo

$('#button').click(function(){ 
    $('.wrapper').filter(':animated').text("animating..."); 
    $('.wrapper').filter(':not(:animated)').text("not animating..."); 
})