सुनिश्चित करें कि आपकी स्क्रिप्ट में कहीं और "क्लिक" घटना फिर से उसी तत्व के लिए बाध्य हो रही है, जैसा कि कई अन्य उत्तर / टिप्पणियां सुझाव दे रही हैं।
मुझे एक समान समस्या थी और यह सत्यापित करने के लिए, मैंने बस console.logअपनी स्क्रिप्ट में एक कमांड जोड़ा , जैसे कि निम्नलिखित स्निपेट में:
$("#link_button")
.button()
.click(function () {
console.log("DEBUG: sliding toggle...");
$("#attachmentForm").slideToggle("fast");
});
यदि, बटन पर क्लिक करने पर, आपको अपने ब्राउज़र के डेवलपर कंसोल (जैसा मैंने किया) से नीचे की छवि के समान कुछ मिलता है, तो आप यह सुनिश्चित करने के लिए जानते हैं कि click()ईवेंट एक ही बटन से दो बार बंधा हुआ है।

यदि आपको एक त्वरित पैच की आवश्यकता है, तो offविधि का उपयोग करने के अन्य टीकाकारों द्वारा प्रस्तावित समाधान (btw unbindjQuery 3.0 के बाद से हटा दिया गया है) इस घटना को ठीक करने से पहले (फिर से) यह अच्छी तरह से काम करता है, और मैं इसे भी सुझाता हूं:
$("#link_button")
.button()
.off("click")
.click(function () {
$("#attachmentForm").slideToggle("fast");
});
दुर्भाग्य से, यह केवल एक अस्थायी पैच है! एक बार जब आपको बॉस को खुश करने की समस्या हल हो जाती है, तो आपको वास्तव में अपने कोड में थोड़ा और खोदना चाहिए और "डुप्लिकेटेड बाइंडिंग" समस्या को ठीक करना चाहिए।
वास्तविक समाधान निश्चित रूप से आपके विशिष्ट उपयोग के मामले पर निर्भर करता है। मेरे मामले में, उदाहरण के लिए, "संदर्भ" की समस्या थी। दस्तावेज़ के एक विशिष्ट भाग पर लागू एक अजाक्स कॉल के परिणामस्वरूप मेरा कार्य शुरू किया गया था: पूरे दस्तावेज़ को फिर से लोड करने से वास्तव में "पृष्ठ" और "तत्व" दोनों संदर्भों को पुनः लोड किया जा रहा है, जिसके परिणामस्वरूप घटना दो बार तत्व के लिए बाध्य हो रही है। ।
इस समस्या का समाधान मेरे jQuery का लाभ उठाने के लिए किया गया था एक समारोह है, जो रूप में ही है पर अपवाद है कि घटना में अपनी पहली मंगलाचरण के बाद स्वत: अनबाउंड है के साथ। यह मेरे उपयोग के मामले के लिए आदर्श था, लेकिन फिर से, यह अन्य उपयोग मामलों के लिए समाधान नहीं हो सकता है।