7
這基本上是一個後續問題:Can't pass event to addEventListener: closure issue。如何使用closure添加removeEventListener?
我已經閱讀了幾乎所有相關的問題,但無法找到答案。
下面的函數在參數從數據數組中拉出的循環中執行。 有了這個函數,我可以將不同的/新的參數傳遞給事件監聽器的每個實例。 outerfunction允許將參數的值封裝在閉包中,以便實際值可用,而不僅僅是對持有者的引用。另外,passeventfunction將事件傳遞給響應函數。最後,響應函數具有所有適當的信息以響應點擊事件。這很好。 問題是,我想不出如何在以後刪除事件監聽器。我嘗試了所有我能想到的。請幫忙。我怎麼能:removeEventListener?
(function outerfunction(i, f) {
elementname.addEventListener("click", function passeventfunction(e) {
responsefunction(e, f, i); });})(parameter1, parameter2);
此外,如果有人可以幫助清理這裏發生的事情。這是閉合內的閉合嗎?是否有遺漏內存泄漏的危險?謝謝!
您需要保存爲'passeventfunction'參考的地方,這樣可以傳遞到'removeEventListener'。 – Bergi