एक चर के रूप में श्रोता रखो और जब .removeEventListener
document.removeEventListener('touchstart', myListener);
साथ दूर करने .addEventListener
var myListener = function (e) {
closePopupOnClick(e, popup);
};
document.addEventListener('touchstart', myListener, true);
के माध्यम से देते हैं तो यह फिर से पारित आप नहीं कठोर मोड में हैं, तो आप एक श्रोता को arguments.callee
के साथ स्वयं को हटा सकता है
document.addEventListener('touchstart', function (e) {
closePopupOnClick(e, popup);
document.removeEventListener('touchstart', arguments.callee);
}, true);
आप कठोर मोड में हैं, तो आप एक नामित समारोह अभिव्यक्ति उपयोग करने के लिए आप एक समारोह में ही
document.addEventListener('touchstart', function myListener(e) {
closePopupOnClick(e, popup);
document.removeEventListener('touchstart', myListener);
}, true);
दूर करने के लिए आप श्रोता में चर का उपयोग करना चाहते हैं चाहते हैं, तो है जो कुछ बदल सकता है (उदाहरण के लिए एक पाश), तो आप एक जनरेटर समारोह, उदाहरण के
function listenerGenerator(popup) {
return function (e) {
closePopupOnClick(e, popup);
};
}
के लिए लिख सकते हैं अब आप listenerGenerator(popup)
साथ श्रोता बना सकते हैं और यह गुंजाइश popup
चर होगा। ध्यान दें कि यदि popup
ऑब्जेक्ट है, तो यह ByRef होगा और इसलिए यह अभी भी परिवर्तनों के अधीन हो सकता है।
[जावास्क्रिप्ट: ईवेंट श्रोता हटाएं] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/4402287/javascript-remove-event-listener) भी [जावास्क्रिप्ट: अज्ञात ईवेंट श्रोता को हटा रहा है] (http: // stackoverflow .com/प्रश्न/3106605/हटाने-एक-अज्ञात-घटना-श्रोता) – Ohgodwhy
कोई प्रश्न पैराम के मुद्दे को संबोधित नहीं करता है। – Tanya