मुझे लगता है कि आप कुछ अवधारणाओं को भ्रमित कर रहे हैं। दस्तावेज़ तत्व से जुड़ने की अनुशंसा नहीं की जाती है, हालांकि कई बार ऐसा करना होता है जब आप गतिशील रूप से जोड़े गए तत्वों को बाध्यकारी करते हैं।
यह सब अस्पष्ट प्रतीत हो सकता है, इसलिए here पहला उदाहरण है जो क्लास चयनकर्ता का सीधे उपयोग करता है और एक क्लिक ईवेंट को बांधता है, ईवेंट बाध्य होने के बाद बाद में गतिशील रूप से डाला जाता है। जैसा कि आप देख सकते हैं कि घटना कभी नहीं निकाल दी जाती है क्योंकि हमने उस तत्व को चुना है जो घटना के बाध्य होने पर डीओएम में मौजूद नहीं था। यह .click
के समतुल्य है अब यह दूसरा उदाहरण देखें। यहां आप देखते हैं कि हम रूट तत्व को document
के रूप में परिभाषित कर रहे हैं। जिसका अर्थ यह है कि क्लिक इवेंट डीओएम पेड़ को सभी तरह से बुलबुला करेगा और फिर उस तत्व को आग लग जाएगा यदि क्लिक किए गए तत्व में कक्षा गतिशील है। यह .live
अब, उदाहरण के लिए, यदि घटना को बाध्य करने के समय डीओएम में मौजूद तत्व मौजूद था, तो कोड ठीक काम करेगा, क्योंकि आप here देख सकते हैं।
कहा जा रहा है। यहां docs को छोड़कर एक उपरोक्त व्यवहार को स्पष्ट करता है।
इवेंट हैंडलर केवल वर्तमान में चयनित तत्वों के लिए बाध्य हैं; वे आपके कोड को कॉल करने के समय पृष्ठ पर मौजूद होना चाहिए।()
तो, निष्कर्ष में। document
तत्व का उपयोग करें जब आप सुनिश्चित हों कि उस तत्व के लिए कोई मूल तत्व नहीं है जिसे आप चुन रहे हैं, उस समय डीओएम में होने की गारंटी है।यदि मौजूद कोई मूल तत्व मौजूद है तो document
तत्व के बजाय इसका उपयोग करें। इस तरह घटना को document
तक सभी तरह से बुलबुला नहीं करना पड़ेगा, इसे केवल थोड़ी दूरी की यात्रा करने की आवश्यकता है।
स्रोत
2012-02-23 18:49:54
कहाँ यह दूसरों के द्वारा की सिफारिश की है? –
कौन कहता है कि इसे उदाहरण 1 की तरह करने की अनुशंसा की जाती है? मैंने इसके विपरीत सुना है, कि सीधे बाल तत्व के लिए बाध्यकारी डोम को घटनाओं को लागू करने से बेहतर प्रदर्शन करता है। – shanabus
कृपया [docs] (http://api.jquery.com/on/) पढ़ें, मैंने अपने उत्तर में जोड़ा। विषय गहराई में जानें। – gdoron