2010-11-08 6 views
13

मुझे किसी तत्व और उसके सभी बच्चों से जुड़ी घटनाओं को हटाने में सक्षम होना चाहिए, भले ही मुझे नहीं पता कि ये घटनाएं क्या हैं। Jquery का उपयोग कर सभी घटनाएं संलग्न हैं।क्या किसी तत्व और उसके बच्चों से जुड़े सभी कार्यक्रमों को हटाना संभव है

उत्तर

24

jQuery 1.8 और उसके बाद

$(element).find("*").addBack().off(); 

addBack() का उपयोग $(element) वापस jQuery वस्तु (उन find("*") द्वारा दिया) द्वारा आयोजित तत्वों की आंतरिक संग्रह करने से तत्वों का मूल सूची जोड़ती है। off() प्रतिनिधिमंडल का उपयोग करने वाले सभी संलग्न ईवेंट हैंडलर को हटा देता है।

तुम सिर्फ चाहते हैं बच्चों और नहीं सभी सन्तान,

$(element).children().addBack().off(); 

का उपयोग दस्तावेज़ देखें:


jQuery 1.7 और निम्न के लिए, addBack() के बजाय andSelf() का उपयोग करें। JQuery 1.6 और निम्न के लिए, unbind() और die() का उपयोग off() के बजाय करें। उदाहरण के लिए:

$(element).children().andSelf().unbind().die(); 
+0

धन्यवाद, क्या यह अनबाइंड प्रतिनिधि() घटनाओं को अनदेखा कर देगा, या मुझे उन्हें अनावश्यक() – SystemicPlural

+1

@ सिस्टम सिस्टमप्लर: नहीं, यह उन घटनाओं को अनदेखा नहीं करेगा। आप उपरोक्त अंत में इसे चेन करके 'undelegate() 'या' die() 'का उपयोग कर सकते हैं। –

0

तत्व पर .unbind() विधि का उपयोग करें।

2

और स्वयं() फ़ंक्शन को बहिष्कृत किया गया है।

उपयोग ऐड() फ़ंक्शन:

$(element).add("*").off(); 
+0

मुझे लगता है कि आप केवल 'addBelf() ' – Marc

+1

और स्वयं() को हटा दिया गया है, $ (तत्व) .children()। एडबैक() $ (तत्व) के बराबर है। (" * ") –

+1

वे बराबर नहीं हैं। उत्तरार्द्ध (आपका उत्तर) डोम में प्रत्येक तत्व का चयन करता है। इसे ठीक करने के लिए आपको "*" चयनकर्ता i.e. '$ (तत्व) .add (" * ", तत्व) .off(); के संदर्भ को संदर्भित करना होगा; – Jools

0

यह एक जवाब नहीं है, लेकिन यह उल्लेख के लायक है।

मैंने विनाश विधि के बिना किसी तृतीय पक्ष प्लगइन का उपयोग किया था। मुझे यह समाधान मिला लेकिन शुरुआत में काम नहीं किया जब तक कि मैंने प्रलेखन में गहराई से खोदना शुरू नहीं किया।

ध्यान दें कि यदि प्लगइन आपके ऑब्जेक्ट पर $(document).on(event, handler) श्रोता बना रहा है, तो आपको $(document).off(event, 'element, element *') लिखकर कार्रवाई को हटाना होगा। यदि मुख्य श्रोता document है तो बस $(element).find("*").addBack().off(); लिखना काम नहीं करेगा।

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