【发布时间】:2019-09-27 14:18:42
【问题描述】:
如何添加只会触发一次的EventListener + 传递参数给它?
function () {
var params = ...
elem.addEventListener('load', function(event, params) {
elem.removeEventListner('load', ...);
do_something(params)
}
}
【问题讨论】:
-
将变量设置为 true,然后在运行后将其设置为 false。做一个 if 语句并将所有代码放在 if 中。 if 检查变量是否为真。如果它是假的,它什么也不做。然后,在 if for true 结束时设置一个大约 100 毫秒的超时,然后运行 removeEventListener 并将变量设置为 false
-
这样变量会阻止它运行两次,然后函数完成后会移除监听器
-
需要在其中完成此操作的代码很复杂,这里不可能有肮脏的解决方案。
-
将回调保存为变量,以便您可以通过名称引用它来 removeEventListener() 它。
标签: javascript events event-handling dom-events