मेरे पास एक ऐसी स्क्रिप्ट है जिसे मैं विकसित कर रहा हूं जो एक स्लाइडिंग बटन प्रकार प्रभाव बनाता है। पांच div प्रत्येक एक दूसरे के बगल में एक लिंक के साथ स्थित हैं। जब उन डीआईवीएस में से एक को संबंधित सामग्री पर क्लिक किया जाता है तो विस्तारित होता है और शेष डिव बंद हो जाते हैं।जावास्क्रिप्ट को दो बार निष्पादित करने से रोकें
समस्या यह है कि यदि उपयोगकर्ता दो बार क्लिक करता है तो यह दो बार क्लिक करता है या तेजी से उत्तराधिकार में किसी अन्य div पर क्लिक करता है, दरारें दिखने लगती हैं।
मुझे आश्चर्य है कि क्या केवल एक बार क्वेरी को निष्पादित करने की अनुमति होगी और इसे कतार देने के बजाय पूरा होने तक प्रतीक्षा करें।
यहाँ, मेरे वर्तमान कोड है अगर यह बकवास मैं इसे कैसे बेहतर कर सकता है पर टिप्पणी करने के लिए स्वतंत्र महसूस ... मैं सबसे अच्छा जावास्क्रिप्ट/jQuery पर नहीं कर रहा हूँ: पी
function mnuClick(x){
//Reset all elements
if($('#'+x).width()!=369){
$('.menu .menu_Graphic').fadeOut(300);
$('.menu_left .menu_Graphic').fadeOut(300);
$('.menu_right .menu_Graphic').fadeOut(300);
$('.menu').animate({width: "76px"},500);
$('.menu_left').animate({width: "76px"},500);
$('.menu_right').animate({width: "76px"},500);
}
var ElementId = '#' + x;
$(ElementId).animate({
width: 369 + "px"
},500, function(){
$(ElementId + ' .menu_Graphic').fadeIn(300);
});
}
अग्रिम धन्यवाद, क्रिस।
+1 जो मैं कहने जा रहा था, बस एक चर है जो घटना को चलाने के ट्रैक का ट्रैक रखता है, प्रसंस्करण शुरू करने से पहले इसे आरंभ करें (इसलिए यह अन्य सभी घटनाओं को अक्षम करता है)। – Jakub
बहुत बहुत धन्यवाद। महान समाधान अभी तक बहुत आसान :) – Chris