在悬停时在Jquery中重复调用自定义函数的最简单方法是什么?

时间:2010-07-03 22:39:18

标签: jquery function timer delay intervals

我有一个名为goRight()的函数,当我点击一个名为“goright”的div时会执行一些操作。

我想这样做,当我将鼠标悬停在div“goright”上时,只要我正在徘徊,它就会重复调用该函数(稍有​​延迟),然后什么都不做,一旦我移动它就停止小鼠走了。

我已经尝试过setInterval,但我认为我误解了它是如何工作的,因此它无法正常运行。

感谢。

1 个答案:

答案 0 :(得分: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并启动重复功能。