2011-09-25 32 views
14

jQuery में अगर हम कुछ तत्व हटाने के लिए .remove() का उपयोग करते हैं, तो तत्वों से जुड़े सभी बाध्य घटनाओं और jQuery डेटा को हटा दिया जाता है।जब आप .html() का उपयोग कर तत्व को हटाते हैं तो jQuery में ईवेंट श्रोताओं को स्वचालित रूप से हटा दिया जाता है?

लेकिन क्या होता अगर हम .html() साथ तत्वों "निकालें"?

हम सभी तत्वों मेमोरी लीक से बचने के लिए किसी भी html को बदलने से पहले निकल की जरूरत है?

उत्तर

15

हाँ, वे हटा दिया जाएगा। jQuery हटाए गए तत्वों से संबंधित घटनाओं आदि को साफ करेगा। यह घटनाओं की नकल नहीं करेंगे, तो आप (elm1) .html $ की तरह कुछ करना ($ elm2.html())

12

हाँ, वे भी हटा दिया जाएगा जब आप html() का उपयोग करें। JQuery source code इसकी पुष्टि करता है।

+1

धन्यवाद अनुराग, मुझे पता है आप पहली बार था और आप अपने जवाब (उस के लिए +1) को प्रमाणित कर रहे हैं, लेकिन kinghfb अधिक अंक की जरूरत है, तो के रूप में उसे प्रेरित करने के लिए स्वीकार किए जाते हैं मैं उसका जवाब का प्रतीक होगा, मुझे आशा है कि आप समझते हैं। धन्यवाद ! – Enrique

+1

कोई समस्या नहीं @Enrique :) – Anurag

+0

किसी भी दर पर स्रोत कोड के लिंक के साथ आपके उत्तर को सत्यापित करने के लिए एक एसओ बैज होना चाहिए :) –

0

बस थोड़ा विस्तार करने के लिए:

  • .remove(), .html(), .empty(), आदि - सभी निकालें श्रोताओं
  • .detach()को दूर नहीं करता श्रोताओं
  • .clone() दे आप तय डेटा/श्रोताओं कॉपी कर रहे हैं, तो पैरामीटर

तो यदि आप श्रोताओं को बनाए रखना चाहते हैं, तो .detach() का उपयोग करें।