2010-07-06 12 views
14

मेरे पास गतिशील टैब का उपयोग करके यूआई है, इसलिए सामग्री को टैब में लोड किया जा सकता है और फिर टैब बंद हो सकता है और सामग्री को पृष्ठ से हटा दिया जा सकता है।जब मैं तत्वों को हटाता हूं तो मुझे jQuery में ईवेंट को अलग करने की आवश्यकता होती है

जब मैं किसी टैब में सामग्री लोड करता हूं तो मैं jQuery का उपयोग करके तत्वों को बहुत से ईवेंट संलग्न करता हूं।

क्या होता है जब मैं पृष्ठ से इन तत्वों को हटा देता हूं? क्या jQuery को जानने की ज़रूरत है?

इसके अलावा, क्या इससे कोई फर्क पड़ता है कि मैं कई बार एक ईवेंट संलग्न करता हूं? उदाहरण के लिए, मेरे टैब लोड में मैं $('.submitButton').click(...) जैसे क्लास चयनकर्ता का उपयोग करके एक ईवेंट संलग्न कर सकता हूं। लेकिन मेरे पास पहले से ही अन्य टैब खुले हो सकते हैं, जो पहले ही सबमिट बटन से जुड़ा हुआ है। इस मामले में, मैं एक ही घटना को दोबारा जोड़ दूंगा। क्या इसमें कोई समस्या है?

+0

मुझे उत्सुकता होगी कि आप एक ही घटना को एक से अधिक तत्वों से क्यों जोड़ रहे हैं। यदि आप बहुत बाध्यकारी/असंतुलित कर रहे हैं, तो संभवतः एक बेहतर दृष्टिकोण है। – user113716

उत्तर

16

आप तो रहता है jQuery विधियों का उपयोग करें .remove() या .empty(), वे jQuery के साथ आवंटित सभी ईवेंट (और अन्य डेटा) को साफ़ कर देंगे।

निकालने के लिये दस्तावेज() से:

तत्वों के साथ जुड़े तत्वों के लिए खुद को, सभी के लिए बाध्य घटनाओं और jQuery डेटा के अलावा हटा दिए गए हैं।

और खाली() के लिए:

मेमोरी लीक से बचने के लिए, jQuery तत्वों से खुद को निकालने से पहले इस तरह के बच्चे तत्वों से डेटा और ईवेंट हैंडलर के रूप में अन्य निर्माणों को हटा।

यदि आप हटाने के मूल एपीआई तरीकों का उपयोग करते हैं, तो वह डेटा चारों ओर लटका होगा। JQuery विधियों का उपयोग करने के लिए बेहतर है।

3

आप .remove() सभी बाध्य घटनाओं और तत्व से संबंधित jQuery डेटा के साथ एक तत्व निकाल देते हैं तो निकाल दिया जाता है।

.detach() से

अन्य, जो डोम से तत्व निकल जाएगी, लेकिन सभी संबंधित डेटा और स्मृति में घटनाओं (जो उपयोगी है जब आप बाद में उस तत्व फिर से सम्मिलित करना चाहते हैं)

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

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