删除通过 Bind 添加的事件监听器
在 JavaScript 中,可以使用 bind() 方法添加事件监听器。此方法创建一个新的函数引用,允许事件侦听器保留对所需上下文的访问。但是,当涉及到删除此类事件侦听器时,标准方法涉及手动跟踪使用 bind() 添加的每个侦听器。
跟踪绑定侦听器引用
一种方法删除用bind()添加的事件监听器是为了跟踪函数引用。这需要维护一个变量来存储绑定函数,并在删除侦听器时显式传递它。
<code class="js">// Store the bound function reference var clickListenerBind = this.clickListener.bind(this); // Add the event listener with the bound reference this.myButton.addEventListener("click", clickListenerBind); // Remove the event listener using the stored reference this.myButton.removeEventListener("click", clickListenerBind);</code>
更简单的方法
比手动更简单、更直接的替代方法跟踪侦听器引用涉及将绑定函数引用直接分配给变量。这允许以与任何其他事件侦听器相同的方式删除侦听器。
<code class="js">const listener = this.clickListener.bind(this); this.myButton.addEventListener("click", listener); this.myButton.removeEventListener("click", listener);</code>
这种方法消除了对额外跟踪变量的需要,并确保一致的事件侦听器删除,无论它们最初是如何添加的。
以上是如何删除 JavaScript 中使用'bind()”添加的事件监听器?的详细内容。更多信息请关注PHP中文网其他相关文章!