无法删除文档上的事件监听器

时间:2019-04-07 17:42:04

标签: javascript gatsby dom-events netlify

我无法从事件监听器中删除名为 不可修改(常量)的函数。

someFunction() {
  const listener = () => {
    console.log('should not run');
  }

  document.addEventListener('touchmove', listener);
  document.removeEventListener('touchmove', listener);
}

代码运行时,将添加但不删除侦听器。

我们将gatsby用于我们的项目,并部署到netlify进行测试。当我在localhost上进行开发时,不会发生此错误,但是在netlify和Prod上会发生。

我的猜测是gats会通过某种方式进行更改以使其无法删除文档上的侦听器,但是我从未听说过这种可能性!

此函数不可修改,并且第三个参数中没有传递任何选项,因此我希望此侦听器被删除。它不是。这是我唯一引用函数 listener 的时候,我专门创建了它来隔离问题。

我真的很想知道为什么会发生这种情况,当我在线查看为什么无法删除eventListener时,总是因为传递的函数是匿名的或不相同,这是一个命名的const。 ,仅被引用一次,因此在removeEventListener上应该完全相同。

要澄清: 我链接的代码代表了我正在运行的代码,在someFunction中没有发生任何多余的事情,我出于调试目的将它们全部删除(以隔离问题) TJ Crowder提到的不是我的代码中发生的事情,因为removeEventListener从同一函数声明中运行

0 个答案:

没有答案