jQuery: $ ()। क्लिक (fn) बनाम $ ()। bind ('क्लिक', fn);


115

इवेंट हैंडलर को हुक करने के लिए jQuery का उपयोग करते समय, क्लिक विधि का उपयोग करने के बीच कोई अंतर है

$().click(fn)

बनाम बाइंड पद्धति का उपयोग करते हुए

$().bind('click',fn);

बाइंड के वैकल्पिक डेटा पैरामीटर के अलावा।


लगता है कि क्लिक पर भी वैकल्पिक डेटा पैरामीटर है। किसी को पता है कि क्या काम करता है के बीच कोई अंतर है? स्रोत: api.jquery.com/click
निक उडेल

जवाबों:


137

JQuery स्रोत से इसकी कीमत क्या है :

jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
    "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
    "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){

    // Handle event binding
    jQuery.fn[name] = function(fn){
        return fn ? this.bind(name, fn) : this.trigger(name);
    };
});

तो नहीं, कोई अंतर नहीं है -

$().click(fn)

कॉल

$().bind('click',fn)

6
सच - click()मूल रूप से शॉर्टहैंड है bind('click')(या, इस दिन, एक उम्र में, यह वास्तव में कॉल करता है on('click')। जिस तरह से मैं इसे देखता हूं, आप शायद खुद को बचा सकते हैं कि on('click')सीधे उपयोग करके अतिरिक्त फ़ंक्शन कॉल करें ।
Nix

वे ऐसा ही करते हैं लेकिन बाँधते हैं () चलो आप कहते हैं, मैं चाहता हूं कि कुछ ऐसा हो जब उपयोग होवर और क्लिक आदि देखें । उदाहरण के लिए नीचे देखें stackoverflow.com/a/519455/292408 । आप निश्चित रूप से केवल एक घटना के लिए बाध्य कर सकते हैं, उदाहरण के लिए 'क्लिक' भी।
एलिय्याह लिन

98

मैथ्यू के जवाब के लिए +1, लेकिन मुझे लगा कि मुझे इस बात का उल्लेख करना चाहिए कि आप एक से अधिक इवेंट हैंडलर को एक बार में इस्तेमाल कर सकते हैं bind

$('#myDiv').bind('mouseover focus', function() {
    $(this).addClass('focus')
});

जो बहुत क्लीनर के बराबर है:

var myFunc = function() {
    $(this).addClass('focus');
};
$('#myDiv')
    .mouseover(myFunc)
    .focus(myFunc)
;

20
+1 यह कि कई घटनाओं को बांधना मेरे लिए समाचार है और संभवतः काफी उपयोगी है।
cletus

7

इसमें एक अंतर यह है कि आप दूसरी घटना का उपयोग करके कस्टम घटनाओं को बांध सकते हैं जो आपके पास है। अन्यथा, वे पर्यायवाची लगते हैं। देखें: jQuery इवेंट डॉक्स


1

बाइंड का [डेटा] पैरामीटर है जो केवल एक बार बाइंड-टाइम पर होगा।

आप कस्टम इवेंट को बाइंड के पहले पैरामीटर के रूप में भी निर्दिष्ट कर सकते हैं।


1

मुझे लगता है कि .click () रास्ता अधिक तार्किक है, लेकिन मुझे लगता है कि आप चीजों के बारे में कैसे सोचते हैं।

$('#my_button').click(function() { alert('BOOM!'); });

लगता है के बारे में के रूप में मृत के रूप में सरल हो जाओ।


0

यदि आपके पास Google Chrome है, तो उनके डेवलपर टूल में एक ईवेंट श्रोता उपकरण होता है, उस तत्व का चयन करें जिसे आप इसके 'ईवेंट' की जासूसी करना चाहते हैं।

आप पाएंगे कि दोनों ही तरीकों से एक ही परिणाम की कोशिश कर रहे हैं, इसलिए वे समकक्ष हैं।


0

मैं पसंद .bind () के साथ इसके इंटरफेस स्थिरता की वजह से .live () । यह न केवल कोड को अधिक पठनीय बनाता है, बल्कि एक कोड को दूसरे के बजाय एक विधि का उपयोग करने के लिए बदलना आसान बनाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.