这基本上是这个问题的后续问题:Can't pass event to addEventListener: closure issue。
我已经阅读了几乎所有相关的问题,但找不到答案。
下面的函数在循环中执行,其中参数从数据数组中提取。 通过这个函数,我能够将不同/新的参数传递给每个事件侦听器实例。outerfunction允许将参数的值封装在闭包中,以便实际值可用,而不仅仅是持有者的引用。此外,passeventfunction将事件传递给responsefunction。最后,responsefunction具有响应单击事件所需的所有适当信息。这非常好用。 问题是,我无法弄清楚如何在以后的时间删除事件侦听器。我已经尝试了我能想到的一切。请帮帮我。如何:removeEventListener?
(function outerfunction(i, f) {
elementname.addEventListener("click", function passeventfunction(e) {
responsefunction(e, f, i); });})(parameter1, parameter2);
此外,如果有人能帮助澄清这里正在发生的事情。这是闭包中的闭包吗?有留下内存泄漏或其他问题的危险吗?
passeventfunction
的引用,这样才能将其传递到removeEventListener
中。 - Bergi