我目前正在构建一个 JavaScript 工具,它接收一个地址并通过一系列函数运行它,这些函数输出一个布尔值,表明地址是否在地址范围内。从此输出中,该工具将根据输出动态向页面添加卡片。我目前的问题是,如果多次单击事件侦听器,它只会继续将卡片添加到页面中。是否有一个事件侦听器可以接收单击事件但仅在第一次触发事件时触发?如果不是,我最好只编写一个函数来删除点击事件,一旦它被触发?我很高兴包含项目中的代码,但似乎没有必要。
答案 0 :(得分:2)
addEventListener 可以选择只监听一次事件:
const button = document.querySelector("button");
button.addEventListener("click", onClick, {
once: true
});
function onClick() {
window.alert("Clicked!");
}
<button>Try clicking me twice</button>
除 Internet Explorer(已停产)外,所有主流浏览器都支持此选项