मान लिया जाये कि मैं सिर्फ एक तत्व के लिए एक साधारण क्लिक हैंडलर अनुलग्न करना चाहते हैं, मैं हमेशा इस किया है:क्या मुझे इवेंट हैंडलर संलग्न करने के लिए .on() या .click() का उपयोग करना चाहिए?
$("#mydiv").click(function() { ... });
JQuery डॉक्स को देखते हुए, ऐसा लगता है कि .on()
"सुझाए गए" ईवेंट हैंडलर्स संलग्न करने के लिए रास्ता है और .bind()
, .delegate()
और .live()
की जगह:
jQuery 1.7 के रूप में, .on() विधि ईवेंट हैंडलर्स संलग्न के लिए आवश्यक सभी सुविधा प्रदान करता है। पुराने jQuery ईवेंट विधियों से कनवर्ट करने में सहायता के लिए, .bind(), .delegate(), और .live() देखें।
और डॉक्स .click()
के लिए यह कहते हैं:
इस विधि पहले दो रूपों में .bind के लिए एक शॉर्टकट ('क्लिक', हैंडलर), और .trigger है ('क्लिक ') तीसरे में।
तो यह संकेत मिलता है कि .click()
.bind()
जिसका बहिष्कार और प्रतिस्थापित किया जाएगा .on()
से, सही उपयोग कर रहा है? या यह संकेत है कि .click()
चारों ओर टिकेगा, लेकिन यह किसी बिंदु पर .on("click")
के लिए शॉर्टकट बन जाएगा?
Variant 1: $("#mydiv").click(function() { ... });
या:
Variant 2: $("#mydiv").on("click", function() { ... });
मूल रूप से, मेरे सवाल यह ... जब JQuery कोड लिखने आज, मैं का उपयोग करना चाहिए है?
आपको विरासत कोड के बारे में चिंता करने की ज़रूरत नहीं है, यह बेहद असंभव है कि वे क्लिक शॉर्टैंड को पूरी तरह से हटा देंगे। .on() हैंडलर एक मैप किए गए ईवेंट में अतिरिक्त जानकारी जोड़ने के लिए, एक ही समय में एकाधिक ईवेंट-हैंडलर संलग्न करने में सक्षम होने से ईवेंट हैंडलर को जोड़ने का एक और अधिक प्रभावी तरीका है! – Khez