0

我有一个名为 goRight() 的函数,当我单击一个名为“goright”的 div 时,它会做一些事情。

我想做到这一点,以便当我将鼠标悬停在 div“goright”上时,只要我悬停,它就会重复调用该函数(稍有​​延迟),然后什么也不做,一旦我将鼠标移开就停止。

我已经尝试过 setInterval,但我认为我误解了它的工作原理,所以它不起作用。

谢谢。

4

1 回答 1

3

不使用 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 并启动重复功能。

于 2010-07-03T23:48:24.860 回答