2010-10-25 10 views
5

पर कोड की केवल कुछ पंक्तियां जब मैं #button पर क्लिक करता हूं, तो यह 'do something' कर रहा है, भले ही .wrapper एनिमेटिंग हो और .wrapper span दिखाई नहीं दे रहा है। इसलिए यह नियमों का पालन नहीं कर रहा है। क्या गलत है?jquery: this.not (': एनिमेटेड') && that.is (': visible') नियमों का पालन नहीं करता, वाक्यविन्यास समस्या?

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

'नहीं (': एनिमेटेड')' नहीं एक जांच है, लेकिन एक चयनकर्ता है। इसलिए यह '[] 'वापस आएगा यदि सभी' '।' रैपर 'एनिमेटेड हैं – glebm

उत्तर

4

यहाँ आप एक working demo है। working demo

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

6

यह अगर बयान के बिना थोड़ा क्लीनर है:

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