【发布时间】:2018-11-25 06:26:48
【问题描述】:
我试图让一个函数在元素的鼠标悬停时触发。但是,如果该功能已经在运行,我希望它不会触发。
我有这个用于鼠标悬停触发器
onmouseover="runFunc()">
我为 js 准备了这个:
var timerStarted = false;
function waitToStart() {
timerStarted = false;
}
function runFunc() {
if (!timerStarted) {
console.log('run function');
}
timerStarted = true;
setTimeout(waitToStart, 6000);
}
当我第一次将鼠标悬停在元素上时,我得到了
运行函数
在 6 秒内没有任何反应,这似乎是有效的。然而,在 6 秒后,控制台输出快速计数到我将鼠标悬停在该函数上的次数:
(24) 运行函数
我很难理解为什么以及如何确保该函数仅在鼠标悬停后每 6 秒触发一次。
【问题讨论】:
标签: javascript timer mouseover