/ / क्या मुझे इवेंट हैंडलर संलग्न करने के लिए .on () या .click () का उपयोग करना चाहिए? - jquery

क्या मुझे इवेंट हैंडलर संलग्न करने के लिए .on () या .click () का उपयोग करना चाहिए? - jquery

मान लीजिए कि मैं सिर्फ एक तत्व पर एक साधारण क्लिक हैंडलर संलग्न करना चाहता हूं, मैंने हमेशा यह किया है:

$("#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")?

असल में, मेरा सवाल यह है ... आज JQuery कोड लिखते समय, क्या मुझे इसका उपयोग करना चाहिए:

Variant 1: $("#mydiv").click(function() { ... });

या:

Variant 2: $("#mydiv").on("click", function() { ... });

?

उत्तर:

उत्तर № 1 के लिए 4

व्यक्तिगत रूप से मैं उपयोग करेंगे on() jQuery 1.7+ से सभी घटना बाइंडिंग के लिए।

इसका मतलब है कि उन तत्वों के बीच कोई अस्पष्टता नहीं है जो गतिशील रूप से जोड़े गए हैं और पृष्ठ लोड पर उपलब्ध हैं।

इसके अलावा, जैसा कि आप कहते हैं, click() (और अन्य घटना शॉर्टकट) में परिवर्तित कर रहे हैं on("event", function() { ... }); वैसे भी jQuery द्वारा, इसलिए यह प्रक्रिया में एक कदम बचाता है - यह नहीं कि यह निश्चित रूप से एक उल्लेखनीय अंतर बनाता है।

और अंत में, on("click") मेरी राय में बेहतर पढ़ता है।