क्या कोई जानता है कि ईवेंट हैंडलर के सेट को कैसे अनइंड करना है, लेकिन बाद में उन्हें फिर से बांधने के लिए उन्हें याद रखें? कोई सुझाव?jQuery: ईवेंट हैंडलर को बाद में फिर से बांधने के लिए
उत्तर
आइटम के डेटा में एक ईवेंट तत्व है। यह आपकी शुरुआत होनी चाहिए, आप अपने तत्वों को पढ़ सकते हैं और हैंडलर को अनइंडिंग से पहले सरणी में स्टोर कर सकते हैं। अगर आपको और मदद की ज़रूरत है तो टिप्पणी करें। मुझे यह विचार $ .fn.clone विधि पढ़ने से मिला है, इसलिए इसे भी देखें।
$(document).ready(function() {
$('#test').click(function(e) {
alert('test');
var events = $('#test').data("events");
$('#test').unbind('click', events.click[0]);
});
});
<a id="test">test</a>
सुपर। यह काम कर सकता है। मैं यह – glaz666
देखूँगा मैं इस समस्या के समाधान के आसपास भी देख रहा था, और यह उत्तर काफी काम करता है। अधिक सामान्यता के लिए, आप ईवेंट का उपयोग कर सकते हैं। एक इटरेटर के माध्यम से क्लिक करें। – Achimnol
jQuery 1.4.2 में, उन्होंने बदल दिया कि ईवेंट कैसे संग्रहीत किए जाते हैं, इसलिए यह काम नहीं करेगा: http: // ब्लॉग।jquery.com/2010/02/19/jquery-142-released/। मुझे यकीन नहीं है कि आपको इसके बजाय क्या करना है। –
आदेश में एक ईवेंट हैंडलर आप अनबाइंड में हैंडलर समारोह में उत्तीर्ण होना निकल करने के लिए()। तो आपके पास पहले से ही हैंडलर फ़ंक्शन है, आपको बस इतना करना है।
क्या हैं, मैंने सोचा कि यदि आप एक विशिष्ट हैंडलर फ़ंक्शन नहीं पारित करते हैं, तो उस ऑब्जेक्ट के लिए सभी घटनाओं पर असंतुलित लागू होता है? – Helmut
@ हेल्मुट हां 'अनबिंड' सभी हैंडलर को अनबाइंड करेगा यदि आप इसे बिना किसी तर्क के कहते हैं। जब तक आप उनका संदर्भ नहीं रखते हैं तब तक आप उन्हें फिर से बाध्य नहीं कर पाएंगे। आप उन घटनाओं को भी अनदेखा कर सकते हैं जिन्हें आप अनजान हैं - उदाहरण के लिए किसी अन्य स्क्रिप्ट द्वारा बाध्य। एक विशिष्ट हैंडलर के साथ अनबिंड कॉल करना सबसे अच्छा है ताकि आप सुनिश्चित हो सकें। – meouw
अब एक अच्छा jQuery प्लगइन copyEvents कहा जाता है, दूसरे के लिए एक वस्तु से जो प्रतियां घटनाओं है। यह आसानी से एक तत्व से "सहेजने" घटनाओं के लिए उपयोग किया जा सकता है और उन्हें बाद में वापस ला सकता है। बस एक और विकल्प :)
वह लिंक मर चुका है। –
यहां यह प्राप्त करने का तरीका है, एक चयन पर storeEvents
और restoreEvents
विधियां प्रदान करता है। storeEvents
इस समय घटनाओं का एक स्नैपशॉट लेता है जिसे इसे कहा जाता है। restoreEvents
पिछले पिछले स्नैपशॉट को पुनर्स्थापित करता है। बहाल करते समय अनबाइंडिंग को पैरामीटर करने के लिए इसे थोड़ा मोड़ने की आवश्यकता हो सकती है, हो सकता है कि आप अंतिम स्नैपशॉट के बाद बाध्य घटनाएं रखना चाहें।
(function($){
function obj_copy(obj){
var out = {};
for (i in obj) {
if (typeof obj[i] == 'object') {
out[i] = this.copy(obj[i]);
}
else
out[i] = obj[i];
}
return out;
}
$.fn.extend({
storeEvents:function(){
this.each(function(){
$.data(this,'storedEvents',obj_copy($(this).data('events')));
});
return this;
},
restoreEvents:function(){
this.each(function(){
var events = $.data(this,'storedEvents');
if (events){
$(this).unbind();
for (var type in events){
for (var handler in events[type]){
$.event.add(
this,
type,
events[type][handler],
events[type][handler].data);
}
}
}
});
return this;
}
});
})(jQuery);
के बाद से jQuery 1.4.2+ परिवर्तन कैसे ईवेंट हैंडलर्स जमा हो जाती है, यह प्रासंगिक लगता है:
सबसे अच्छा तरीका मैंने पाया घटना नेमस्पेसिंग उपयोग करने के लिए किया गया था:
var ary_handlers = [ fn_highlight, fn_onpress, fn_cleanup ];
for (idx = 0; idx < ary_handlers.length; idx++){
$('#test').bind('click.foobar',ary_handlers[idx]);
}
// and then later:
$('#test').unbind('.foobar');
ऊपर के उदाहरण में , सभी foobar घटनाओं unbound। ध्यान दें कि यदि आप महीन अनाज नियंत्रण की जरूरत है, आप प्रत्येक क्लिक हैंडलर नाम स्थान और संचालकों के अपने सरणी से संबद्ध हों सकता है:
var ary_handlers = [ fn_highlight, fn_onpress, fn_cleanup ];
for (idx = 0; idx < ary_handlers.length; idx++){
$('#test').bind('click.ns_' + String(idx), ary_handlers[idx]);
}
// and then later you could pick off a specific one to unbind
$('#test').unbind('.ns_2');
निक Craver jQuery 1.4.2+ के लिए correct answer प्रतीत होता है। इसमें एक उपयोगी fiddle भी शामिल है। उनका समाधान आपको एक jQuery तत्व से जुड़े सभी ईवेंट हैंडलर को पुनर्प्राप्त करने की अनुमति देता है और यह पता लगाने के लिए कि वे किस हैंडलर से जुड़े हुए हैं।
$(document).ready(function() {
$('#test').click(function(e) {
e.preventDefault();
alert('test');
$('#test').unbind('click', e.handler);
//Do Something...
$('#test').click();
});
});
<a id="test">test</a>
event.handler
वर्तमान हैंडलर कि घटना प्राप्त हुआ है, तो यह छोड़ते हुए द्वारा आप अन्य संचालकों रख सकता है रिटर्न:
जो लोग वोट देते हैं उन्हें वोट देने का कारण प्रदान करना चाहिए। व्यक्ति को सीखने में मदद करता है और थोड़ा जवाबदेही प्रदान करता है ... कभी-कभी नीचे मतदाता गलत होता है। हर कोई सीखता है। – traday
आप event.handler
पैरामीटर का उपयोग कर सकते हैं।
- 1. jQuery 1.8 ईवेंट हैंडलर
- 2. एक ईवेंट हैंडलर को एकाधिक तत्वों में jQuery से बांधें?
- 3. jQuery स्वचालित रूप से ईवेंट हैंडलर को अमेक्स प्रतिक्रिया
- 4. जावास्क्रिप्ट को ईवेंट हैंडलर
- 5. जावास्क्रिप्ट/jQuery: नए पंजीकृत ईवेंट हैंडलर के लिए सुनो
- 6. ईवेंट हैंडलर
- 7. Jquery तत्व के अंदर सभी ईवेंट हैंडलर को हटाएं
- 8. क्या एकाधिक हैंडलर वाले ईवेंट से एक विशिष्ट ईवेंट हैंडलर को निकालना संभव है?
- 9. किसी ईवेंट के हैंडलर
- 10. jQuery एकाधिक ईवेंट हैंडलर - कैसे रद्द करें?
- 11. jQuery क्लिक ईवेंट हैंडलर एक चेकबॉक्स
- 12. Jquery/JS बाइंड "पेस्ट" ईवेंट हैंडलर को टेक्स्टबॉक्स
- 13. जावास्क्रिप्ट प्रोटोटाइप ईवेंट हैंडलर
- 14. क्या किसी ईवेंट हैंडलर
- 15. एक ईवेंट में सभी ईवेंट हैंडलर को हटाकर
- 16. jQuery डेटा को बांधने के लिए कैसे बाध्य करें?
- 17. क्या jQuery.on() ईवेंट हैंडलर के निर्माण के बाद जोड़े गए तत्वों के लिए काम करता है?
- 18. जावास्क्रिप्ट ईवेंट हैंडलर तर्क
- 19. ईवेंट हैंडलर कस्टम कोड
- 20. ईवेंट हैंडलर से पहले मैं jQuery में AJAX प्रतिक्रियाओं को कैसे रोक सकता हूं?
- 21. सुनिश्चित करें कि jQuery ईवेंट हैंडलर निष्पादन आदेश
- 22. Jquery - सुनिश्चित करें कि ईवेंट हैंडलर हैंडलर की श्रृंखला में निष्पादित किया जा रहा है
- 23. सेवा चलाने के लिए बाध्यकारी (फिनिश() के बाद)/कॉलबैक हैंडलर
- 24. कैसे सही ढंग से एक ईवेंट हैंडलर
- 25. चहचहाना बूटस्ट्रैप पॉपओवर में बटन के लिए ईवेंट हैंडलर संलग्न
- 26. एकाधिक ईवेंट हैंडलर के साथ JQuery .on() विधि एक चयनकर्ता
- 27. एक परिवर्तन ईवेंट हैंडलर में jQuery ट्रिगर ईवेंट का उपयोग कर डेटा पास करें?
- 28. ट्रिडियन वर्कफ़्लो - ईवेंट हैंडलर
- 29. स्थिर ईवेंट हैंडलर और गैर स्थैतिक ईवेंट हैंडलर
- 30. एक jQuery ईवेंट को अन्य
क्या आपके ईवेंट में एक ही हैंडलर फ़ंक्शन है? या सभी अलग। – bendewey
यह मामला नहीं होना चाहिए। आइए दिखाएं कि वे सभी अलग हैं और मुझे नहीं पता कि वे – glaz666