के लिए .on करने के लिए(), jQuery 1.7 के बाद से:उन्नयन एक पृष्ठ अनुप्रयोगों
$('someSelector').live('click', fn());
बन गया है, अनिवार्य रूप से:
$(document).on('click', 'someSelector', fn());
सभी लाइव ईवेंट नहीं कर रहे चयनकर्ता में तत्वों के लिए सीधे बाध्य नहीं है, लेकिन दस्तावेज़ के लिए प्रतिनिधि प्रतिनिधि।
यह, मुझे लगता है कि ऐसा है, जो भविष्य में 'someSelector'
से मेल खाते हैं, इसलिए डोम में मौजूद नहीं हैं, इसलिए ईवेंट हैंडलर को बाध्य नहीं किया जा सकता है (प्रत्यक्ष या प्रतिनिधि बाध्यकारी के माध्यम से)।
एकल पृष्ठ अनुप्रयोगों के लिए जहां विशाल बहुमत, यदि सभी तत्व गतिशील रूप से लोड नहीं होते हैं, तो दस्तावेजों में बाध्यकारी सब कुछ के साथ प्रदर्शन के मुद्दे को संभालने के तरीके के बारे में दिशानिर्देश प्रकाशित किए गए हैं?
उदाहरण के लिए, ajax()
के माध्यम से नई सामग्री लोड होने पर और आलसी .live()
मानसिकता में लिखे गए कोड को अपडेट करने के लिए ईवेंट हैंडलर को फिर से पंजीकृत/पुनः पंजीकृत करने का सबसे अच्छा तरीका कवर करना?
मैं आम तौर पर दस्तावेज़ या एक मूल कंटेनर से बांधता हूं जिसे हटाया नहीं जाता है।AJAX अनुरोधों के बाद घटनाओं को फिर से पंजीकृत करना एक विकल्प है, हालांकि इसे बनाए रखना मुश्किल हो सकता है। –
@Chad मुझे आपकी शैली पसंद है। ऐसा करने के दौरान मैं "बूम" कहूंगा और फिर मेरे माउस को "माइक ड्रॉप" कहूंगा। – StuperUser
लेकिन सभी गंभीरता में 'दस्तावेज़' के लिए बाध्यकारी के साथ कुछ भी "गलत" नहीं है जब तक कि यह ऐसी सामग्री न हो जो आपको लगता है कि यह कभी खत्म नहीं होने के बाद कभी वापस नहीं आएगा, दस्तावेज़ से जुड़ें। (वह '$ (दस्तावेज़) है।()' '' '$ (दस्तावेज) .बिंद()' स्पष्ट रूप से) – Chad