我有一个名为 goRight() 的函数,当我单击一个名为“goright”的 div 时,它会做一些事情。
我想做到这一点,以便当我将鼠标悬停在 div“goright”上时,只要我悬停,它就会重复调用该函数(稍有延迟),然后什么也不做,一旦我将鼠标移开就停止。
我已经尝试过 setInterval,但我认为我误解了它的工作原理,所以它不起作用。
谢谢。
不使用 jQuery,但这对我有用,方法应该类似
<script type="text/javascript" charset="utf-8">
var doingStuff = false;
function doStuff() {
if (doingStuff) {
document.getElementById('stuff').innerHTML += '.';
setTimeout(doStuff, 100);
}
}
</script>
<p onmouseover="doingStuff = true; doStuff()" onmouseout="doingStuff = false">
Mouseover to do stuff
</p>
<p id="stuff">Stuff: </p>
.
只要您悬停,这将每 100 毫秒向文档添加一个。
基本上,鼠标悬停时将布尔值设置为 true,鼠标移出时设置为 false。除非变量为真,否则不要安排下一次通话。此外,除非您需要,否则您不会每 100 毫秒调用一次函数。这意味着在您悬停之前没有任何事情发生,将 var 设置为 true 并启动重复功能。