在javascript中只激活一次事件处理程序



element.addEventListener('dblclick', function () {});

我相信有一个"一次性"选项,但不知道该放在哪里?

你是对的。once选项在可选的options对象参数中指定,该参数可以像这样传入:

element.addEventListener('dblclick', function () {
...
}, { once: true });

文档:EventTarget.addEventListener#语法

由于once在某些浏览器中的支持有限,我使用这种方法,无论如何,这在javascript中都是一种很好的模式。

function addEventListenerOnce(elem, name, callback) {
var foo = function(ev) {
elem.removeEventListener(name, foo);
callback.call(elem, ev)
}
elem.addEventListener(name, foo)
}
var elem = document.querySelector("button");
addEventListenerOnce(elem, 'click', () => console.log("click"))
<button>click</button>

最新更新