document.addEventListener("wheel",changeTopicBackground);
function changeTopicBackground(){
if(document.getElementById("topicBackground").style.getPropertyValue("background-image")===`url("yy.jpg")`){
document.getElementById("topicBackground").style.backgroundImage = "url('firstDevil.png')";
}
else{
document.getElementById("topicBackground").style.backgroundImage = "url('yy.jpg')";
}
}
我也尝试过setTimeout()和setInterval(),但是如果我在函数内部使用setTimeout,则它将在该时间之后在函数内部执行该块...并且setInterval将重复执行,这是不希望的。 / p>
问题是: 在函数内部的代码执行后,如何停止使用wheel事件监听器1秒?
答案 0 :(得分:1)
您可以在函数触发时删除侦听器,并在一秒钟后使用setTimeout
将其恢复:
document.addEventListener("wheel", changeTopicBackground);
function changeTopicBackground() {
console.log("wheeled!")
document.removeEventListener("wheel", changeTopicBackground)
setTimeout(() => document.addEventListener("wheel", changeTopicBackground), 1000)
}