2011-11-03 15 views

उत्तर

4

$(el).on डेवलपर्स को किसी भी घटना प्रकार, प्रत्यक्ष और प्रतिनिधि कार्यक्रमों के लिए बाध्यकारी घटनाओं का एक एकीकृत तरीका प्रदान करता है। यह आपको किसी ऑब्जेक्ट को पास करके एक से अधिक घटनाओं को बाध्य करने की अनुमति देता है (documentation में दूसरा उदाहरण)

आप कुछ कीस्ट्रोक भी सहेजते हैं, इसके लायक होने के लिए।

2

के बजाय $(el).click() करना चाहते हैं आप एक से अधिक बाध्य कर सकते हैं घटना प्रकार एक ही समय में, इसलिए यदि आप एकाधिक घटनाओं पर एक ही चीज़ करना चाहते हैं तो आपको कोड को डुप्लिकेट करने या एक अलग फ़ंक्शन बनाने की आवश्यकता नहीं है।

+0

आप एक समारोह को अन्य कार्यों के साथ एक से अधिक ईवेंट प्रकार में भी जोड़ सकते हैं। यह इवेंट हैंडलिंग का एकीकरण है, और यह आपको मैपिंग के माध्यम से एक से अधिक ईवेंट में एक से अधिक फ़ंक्शन असाइन करने की अनुमति देता है। – JAAulde

+0

निश्चित रूप से, लेकिन 'click() 'के साथ नहीं, जिसका विशेष रूप से उल्लेख किया गया था! – JJJ

+0

आह, यह सच है – JAAulde

0

ऐसा लगता है कि यह कई अन्य घटना बाध्यकारी कार्यों को गठबंधन/प्रतिस्थापित करने के लिए मंचित किया जा रहा है ... उन सभी को बांधने का एक कार्य! (एलओटीआर geekery ftw)

+0

घंटी बजती है ... – roselan

1

यह मेरी समझ है कि नई .on().bind(), .delegate() और .live() में कुछ हद तक नकली कार्यक्षमता का एक विलय है। यह एपीआई के विलय के रूप में बहुत अधिक है क्योंकि यह कार्यान्वयन का एक और एकीकृत कार्यान्वयन में एक संयोजन है।

2

$(el).click(...)$(el).bind('click', ...) के लिए शॉर्टेंड है। यदि आप documentation for bind() को documentation for on() पर तुलना करते हैं, तो आपको कई अंतर दिखाई देंगे।

यह बहुत अच्छी तरह से bind() किए गए दस्तावेज़ों की पहले पैराग्राफ द्वारा संक्षेप है:

jQuery 1.7 के रूप में, .on() विधि एक दस्तावेज़ में ईवेंट हैंडलर्स संलग्न के लिए पसंदीदा तरीका है। पिछले संस्करणों के लिए, .bind() विधि का उपयोग इवेंट हैंडलर को सीधे तत्वों को जोड़ने के लिए किया जाता है। हैंडलर वर्तमान में चयनित तत्वों से jQuery ऑब्जेक्ट में संलग्न हैं, इसलिए उन तत्वों को बिंदु पर .bind() पर मौजूद होना चाहिए। अधिक लचीली घटना बाध्यकारी के लिए, .on() या .delegate() में ईवेंट प्रतिनिधिमंडल की चर्चा देखें।

संबंधित मुद्दे