已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
3天前关闭。
Improve this question
我做了这个函数来修改一个库。这个函数只对1有效,因为计数器不会重置为0。
myFunction(linkBox) {
const redirect = document.getElementById("href-id").href;
let draggingImgs = false;
let timer;
linkBox.addEventListener("mousedown", () => {
console.log(timer, "mousedown event");
timer = setTimeout(() => {
draggingImgs = true;
}, 500);
});
linkBox.addEventListener("mouseup", () => {
if (draggingImgs === false) {
window.location.href = redirect;
} else {
document.body
.querySelectorAll(".swiffy-slider")
.forEach((sliderElement) => this.initSlider(sliderElement));
}
clearTimeout(timer); // Timer is not resetting
console.log(timer);
});
}
我试过了,在clearTimeout(计时器)之后:
timer = null;
timer = 0;
1条答案
按热度按时间rjee0c151#
计时器重置正常:只不过一旦将
draggingImgs
设置为true
,它就不会再被设置为false
了。在鼠标出现后,需要再次将draggingImgs
重置为false。在调用clearTimeout
之前或之后添加以下代码:下面是一个实际应用的例子。
第一次