2008-11-04 16 views
6

मेरे पास एक एनीमेशन वाला मेनू है, लेकिन एनीमेशन होने पर मैं क्लिक को अक्षम करना चाहता हूं।jQuery का उपयोग करके, मैं वर्तमान टैब पर क्लिक प्रभाव को कैसे अक्षम कर सकता हूं?

<div></div> 
<div></div> 
<div></div> 

$("div").click(function() { 
    $(this).animate({height: "200px"}, 2000); 
    return false; 
}); 

हालांकि, ईवेंट होने के दौरान मैं सभी बटन अक्षम करना चाहता हूं, और क्लिक किए गए div को अक्षम कर सकता हूं।

मैं div कि क्लिक किए जाने पर एक वर्ग को जोड़ने और उस वर्ग के बिना केवल divs पर क्लिक डालने की सोच रहा था:

$("div").not("clicked").click(function() { 
    $(this).animate({height: "200px"}, 2000).addClass("clicked"); 
    return false; 
}); 

लेकिन यह काम करने के लिए प्रकट नहीं होता है (मैं इसे तार्किक करता है लगता है) ?

किसी भी मदद की सराहना की।

चीयर्स,
स्टीव

उत्तर

15
$("div").click(function() { 
    if (!$(this).parent().children().is(':animated')) { 
     $(this).animate({height: "200px"}, 2000); 
    } 
    return false; 
}); 
+1

W00t के संबंध में कुछ याद कर रहा हूँ ! 14 महीने बाद मेरी समस्या हल हो गई। – Martin

+0

धन्यवाद दोस्त! jQuery चट्टानों! – VinnyG

0

आप कुछ इस तरह कर सकता है ...

$(function() {   
    $("div").click(function() {     

     //check to see if any of the divs are animating 
     if ($("div").is(":animated")) { 
      alert("busy"); 
      return; 
     } 

     //whatever your animation is   
     var div = $(this); 
     div.slideUp(3000, function(){ div.slideDown(1000); }); 

    }); 

}); 

यह इतने लंबे समय के किसी भी div के रूप में वर्तमान में एनिमेट नहीं है क्लिक चेतन होगा। मैं सबसे अधिक संभावना है कि उन सभी divs को एक कंटेनर में रखें और न केवल बस को संदर्भित करें, क्योंकि यह केवल आपके मेनू की तुलना में पृष्ठ पर बहुत अधिक प्रभावित हो सकता है,

0

मैं क्लिक किए गए <div> को अक्षम कैसे कर सकता हूं एनीमेशन हुआ है? मैं div जिस पर क्लिक किया गया है करने के लिए एक वर्ग चुके हैं, लेकिन निम्नलिखित कर काम करने के लिए प्रकट नहीं होता है:

<div></div> 
<div class="active"></div> 
<div></div> 

$("div").not('active').click(function() { 
    if (!$(this).parent().children().is(':animated')) { 
    $(this).animate({height: "200px"}, 2000); 
    } 
    return false; 
}); 

मुझे लगता है मैं जिस तरह से काम करता है .not

संबंधित मुद्दे

 संबंधित मुद्दे