2010-08-25 5 views
58

का उपयोग करसब कैसे घटना मैं क्लिक करें घटना हटाने के लिए इस कोड का उपयोग कर सकते jQuery

$('p').unbind('click') 

निकल करने के लिए, लेकिन, सभी घटना को दूर करने के कुछ तरीके है?

में jquery में unbindAll नामक एक विधि है?

धन्यवाद

उत्तर

84

आप पैरामीटर के बिना .unbind() कॉल कर सकते हैं यह करने के लिए:

$('p').unbind(); 

से the docs:

सामान्य स्थिति में, कोई तर्क के साथ, .unbind() सभी संचालकों से जुड़ी को हटा अवयव।

+1

यदि 'पी' में कुछ बच्चे तत्व हैं, तो क्या यह बयान श्रोताओं को उन पर भी रोक देगा? – Vrishank

69

jQuery 1.7, off() और on() के रूप में बाध्य करने के लिए पसंदीदा तरीकों और अनबाइंड ईवेंट हैंडलर्स हैं।

$('p').off(); 

या विशिष्ट संचालकों के लिए:

तो एक तत्व से सभी संचालकों को दूर करने, इस का उपयोग

$('p').off('click hover'); 

और बाँध ईवेंट हैंडलर्स जोड़ने के लिए या करने के लिए, आप उपयोग कर सकते हैं

$('p').on('click hover', function(e){ 
    console.log('click or hover!'); 
}); 
+24

आप हटाएँ के लिए हर अपने page_ से बाध्यकारी आप '$ (दस्तावेज़) .add कॉल कर सकते हैं चाहते हैं ('*') बंद();।'। – flu

+6

इसे वर्तमान उत्तर के रूप में अपडेट करने की आवश्यकता है। –

+0

$ (दस्तावेज़) .add ('ID_OF_THE_ELEMENT')। ऑफ(); मेरी मदद की .. धन्यवाद @flu – Moitt

0

@jammypeach & पर उपयोग करने के लिए स्वीकृत विधियों के बारे में सही है। अनबिंद कभी-कभी अजीब व्यवहार बनाते हैं (उदाहरण के लिए वास्तव में घटनाओं को सही ढंग से अनबाइंड नहीं करना)।

शरीर के भीतर सभी तत्वों निकल करने के लिए, उन सब को खोजने के लिए और हर एक के लिए क्लिक हैंडलर बंद कर देते हैं (पुराने अनबाइंड था क्या):

$("body").find("*").each(function() { 
    $(this).off("click"); 
}); 

भी कैसे देता है जिन्हें आप है को बचाने के लिए देख this stack overflow question में बंद कर दिया गया।

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