ऑफ मेथड
off मेथड एलिमेंट से इवेंट हैंडलर को
अनबाइंड करने की अनुमति देता है। हैंडलर को बाइंड करने के लिए
आप off मेथड का
उपयोग कर सकते हैं।
सिंटैक्स
इस तरह हम एलिमेंट से इवेंट हैंडलर को हटाते हैं,
पहले पैरामीटर के रूप में स्ट्रिंग के रूप में
एक या अनेक इवेंट्स को स्पेस से सेपरेट करके पास किया जाता है,
दूसरे के रूप में - हम एलिमेंट के अंदर डिसेंडेंट्स के
अतिरिक्त फिल्टरिंग सेलेक्टर को पास करते हैं
(यह उस से मेल खाना चाहिए जो हमने
on मेथड में पास किया था, जब हैंडलर को
अटैच कर रहे थे)। सभी डेलीगेटेड इवेंट्स को हटाने के लिए,
'**' वैल्यू पास करें। दूसरा पैरामीटर
ऑप्शनल है। तीसरे के रूप में हम फंक्शन-हैंडलर को पास करते हैं
(जिसे हमने अटैच किया था), जिसमें इवेंट ऑब्जेक्ट
पास किया जाता है या false पास करते हैं:
$(सेलेक्टर).off(इवेंट्स, [सेलेक्टर], फंक्शन-हैंडलर(इवेंट ऑब्जेक्ट));
आप off मेथड का दूसरे तरीके से उपयोग कर सकते हैं,
तब पहले पैरामीटर में
जावास्क्रिप्ट ऑब्जेक्ट पास किया जाता है, जहां कुंजियां - इवेंट प्रकार हैं, और
वैल्यूज - फंक्शन-हैंडलर्स हैं, जिन्हें हमने
एलिमेंट में जोड़ा था:
$(सेलेक्टर).off({'इवेंट प्रकार': हैंडलर}, [सेलेक्टर]);
हम बस jQuery.Event ऑब्जेक्ट के रूप में
एक पैरामीटर पास कर सकते हैं:
$(सेलेक्टर).off(इवेंट);
अगर मेथड को कोई पैरामीटर नहीं पास करते हैं, तो हम एलिमेंट से सभी अटैच्ड हैंडलर्स को अनबाइंड कर देंगे:
$(सेलेक्टर).off();
उदाहरण
आइए पैराग्राफ में testFunc
फंक्शन-हैंडलर जोड़ते हैं।
लेकिन दूसरे पैराग्राफ से तुरंत हैंडलर को हटा देंगे,
इस तरह दूसरे पैराग्राफ पर क्लिक करने से
कुछ नहीं होगा (अगर हम कोड की आखिरी
लाइन को कमेंट कर दें, तो हम देखेंगे कि इवेंट कैसे ट्रिगर होता है और
दूसरे पैराग्राफ पर क्लिक करने पर):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // हैंडलर जोड़ता है
$('#test2').on('click', {text: 'bbb'}, testFunc); // हैंडलर जोड़ता है
$('#test2').off('click', testFunc); // हैंडलर हटाता है