आपको लगता है कि आप डोम वस्तु पर घटनाओं को सुन सकते हैं तो .on()
उपयोग करने के लिए प्रयास कर रहे हैं जिसे प्रारंभिक .on()
कॉल करने के बाद बनाया जा सकता है, तो ऐसा करने का सबसे प्रभावी तरीका मौजूदा माता-पिता ऑब्जेक्ट को ढूंढना है जो नहीं आएगा और जायेगा और आप ईवेंट श्रोताओं को अब बाध्य कर सकते हैं।
.live()
सभी श्रोताओं को दस्तावेज़ ऑब्जेक्ट (मास्टर पैरेंट) पर रखें और यदि आपके बहुत सारे श्रोताओं थे तो बहुत अक्षम हो सकते हैं।
.on()
आपको यह निर्दिष्ट करने की अनुमति देता है कि वह मूल वस्तु सबसे कुशलता से क्या होगी। इसलिए, यदि आप इन सभी ईवेंट हैंडलर को एक कथन में रखना चाहते हैं और इन '#header .fixed-feedback-bn, # sb-sec .feedback-bn' में कोई सामान्य अभिभावक नहीं है, तो आपको निर्दिष्ट करना होगा दस्तावेज़ के रूप में ग्रेग की तरह माता-पिता लिखा है।
लेकिन, ऐसा करने का एक और अधिक प्रभावी तरीका आवश्यकता के अनुसार इसे अलग करना होगा। उन तत्वों के लिए जिनके पास गतिशील आवश्यकता नहीं है, बस उस तत्व से सीधे बाध्य करें।उदाहरण के लिए #header और # sb-सेकंड इस तरह यह करने के लिए आते हैं, तो यह नहीं है/जाने के लिए और गतिशील व्यवहार की जरूरत नहीं है, तो आप सिर्फ पा सकते हैं सीधे:
$('#header, #sb-sec').on('click', function() {
// code here
});
और, तत्वों है कि आप कुछ गतिशील जरूरत के लिए व्यवहार, एक उपयुक्त आम माता-पिता लेने और घटनाओं के लिए पकड़ बिंदु के रूप में आम माता पिता और फिल्टर जो उप तत्वों के लिए आप ईवेंट को सक्रिय करना चाहते हैं के रूप में चयनकर्ता का उपयोग करके इस तरह उस पर हुक के लिए:
$('#feedback').on('click', '.feedback-bn, .fixed-feedback-bn', function() {
// code here
});
बीटीडब्लू, मैं हमेशा '$ ('दस्तावेज़') के बजाय' $ (दस्तावेज़) 'का उपयोग करता हूं, क्या यह jQuery के लिए अलग है? –