问题标签 [removeeventlistener]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3048 浏览

javascript - 如何从文档和窗口中删除 JavaScript 触摸事件处理程序?

我有一个显示FullCalendar日历的网页

日历托管在公共 Salesforce 社区页面中。

我希望能够通过使用touch和的移动设备在日历中创建事件drag

Salesforce 社区和 FullCalendar 都支持移动设备。

FullCalendar支持触控

但是当我使用移动设备访问社区页面时,我无法使用touchdrag创建日历条目。

Salesforce 社区页面/框架创建了一些touch事件处理程序:

  • document对于touchstarttouchendtouchcancel
  • window为了touchmove

这似乎覆盖了 FullCalendartouch事件。

这是用于调试的示例日历:

如何删除andtouch上的事件处理程序?documentwindow

我试过添加:

但是我刚刚在控制台中收到了这个错误:

[干预] 由于目标被视为被动,无法阻止被动事件侦听器内部的默认值。

而且所有日历按钮都不再起作用了。

0 投票
1 回答
30 浏览

javascript - 如何在类中的(范围)addEventListener 上应用 removeEventListener?

在全局范围内,您可以删除 eventListener。下一个代码有效,并显示所需的行为;第一个按钮触发一个改变,第二个不触发。

在 OOP 情况下,我最终会遇到这样的情况。

如您所见,OOP 代码没有删除 eventListener,因为没有选择该函数。

任何有想法如何在常规 JavaScript和 OOP 中解决这个问题的人?

0 投票
1 回答
2508 浏览

javascript - 为什么这个反应/javascript“removeEventListener”不删除监听器?

看来这里的听众没有被删除。知道如何解决这个问题吗?我猜这与我“分享”听众的方式有关,我正在使用箭头函数(这里根据建议https://medium.freecodecamp.org/reactjs-pass-parameters-to-event-handlers-ca1f5c422b9 )

代码:

单击“水平拖动测试”并向下拖动(按下鼠标按钮),释放鼠标按钮,然后再拖动一点后,控制台输出。

具体问题是如何保留“重用”事件处理程序用于多种目的的概念?

注意我在这里没有像建议的答案之一那样使用匿名函数(Javascript removeEventListener not working

0 投票
2 回答
1104 浏览

three.js - How to deactivate DragControls in Three.js?

I would like to stop DragControls functionality after checkbox deselection. I try to use removeEventListener, but it seems not to be working. Do you have any idea how to deactivate DragControls?

#xA;
0 投票
0 回答
144 浏览

javascript - 删除动画子节点的动画迭代事件侦听器

场景:我有一个顶部/父级<div>,上面有一个无限的 CSS 动画。它也有一些<div>作为子/子节点,一些(一个或多个)可能还有一个无限的 CSS 动画。

HTML 摘录

CSS摘录(只是想知道):

现在的问题是:我添加了一个事件处理程序,因为我需要在每次父动画迭代时做一些事情……而我只需要那个!问题是即使子节点无限动画迭代时事件也会触发......所以,当然,我决定检查事件是否与父节点的动画相关,但我也想尝试以某种方式删除事件处理程序从子节点。我正在使用以下JavaSript 代码

else分支似乎在那里没有任何影响,当子节点动画迭代时,事件继续触发......你能告诉我它有什么问题吗?

也许我想我不能删除“不存在”的东西?(而且,确实,子节点并没有真正附加事件处理程序,它们有点“继承”它们的父节点,所以......)是否甚至可以删除那些“继承的”子事件侦听器/处理程序,或者我应该do_what_I_need()当他们触发时,是否满足于简单的“不做” ?

哦,是否有可能animationiteration仅将事件处理程序附加到父节点并避免它被其子节点“继承”(这样我可以确定只有它的动画会触发,我什至不需要关心处理程序代码中的子节点)?

谢谢你们的帮助

0 投票
0 回答
89 浏览

angular - 单元测试取消订阅 fromEvent(this.document, 'click')

我想确保在收到它正在等待的点击后,它会取消订阅:

我在嘲笑被注入的文档(@Inject(DOCUMENT) public document: Document)并且确实在 addEventListener 和 removeEventListener 上放置了间谍。

这是我的模拟:

我以为fromEvent(this.document, 'click')会打电话addEventListener,但显然没有。

我以为unsubscribe()会打电话removeEventListenerdocument但显然没有。

我将所有 DOMDocument 方法添加到我的模拟 ( get activeElement(), adoptNode()..) 中,但没有一个在之后被调用unsubscribe()

我如何测试取消订阅被调用?我如何模拟订阅部分?

0 投票
3 回答
769 浏览

javascript - JavaScript:删除事件侦听器不起作用

我想使用 JavaScript 删除事件侦听器,但它似乎不起作用......我尝试将函数debounce作为showPopup参数传递给removeEventListener.

0 投票
0 回答
44 浏览

javascript - 在添加侦听器的函数中声明/包含的函数中删除事件侦听器

这可能是一个非常愚蠢的问题,但我想了解其背后的原因。我为糟糕的问题标题道歉。

下面的代码有效。当 btn 元素有 mousedown 事件时,会显示一个菜单,并添加一个事件侦听器来隐藏文档中任何位置的 mousedown 事件的菜单。如果在显示菜单时单击 btn,则不会再次添加该事件,而是通过调用函数 clear 将其删除。所以,根本没有什么特别的。

我不明白并且浪费了很多时间的是,如果在 menu_func 中声明了 clear 函数,则在第二个 btn mousedown 事件时不会删除文档上的事件侦听器。(我的意思是简单地将 menu_func 的右大括号移到 clear 函数的右大括号之后。)调用 clear 函数并执行其余代码,但在文档有鼠标之前不会删除事件侦听器down 事件,然后它记录多个已删除的事件侦听器消息。

如果没有向控制台日志写入任何内容,人们会认为代码以任何一种方式工作,但事实并非如此。

请解释我在这里不明白的地方。谢谢你。

0 投票
3 回答
2798 浏览

javascript - 移除使用 bind(this) 添加的事件监听器

如何删除window我在下面绑定的点击侦听器constructor?我需要它来监听window,并且我需要访问其中的按钮实例。

0 投票
1 回答
56 浏览

javascript - removeEventListeners 似乎不起作用

我正在尝试制作一个简单的脚本来使用星级系统处理评级。我在按下星星的那一刻停了下来,因为在单击一个星星后,所有星星都应该保持在原位,而事件侦听器只为这个星星被删除。

你能告诉我我做错了什么吗?我怀疑 removeEventListener 不能正常工作;|