代码之家  ›  专栏  ›  技术社区  ›  Hamid

在jquery中反复调用自定义函数的最简单方法是什么?

  •  0
  • Hamid  · 技术社区  · 14 年前

    我有一个名为goright()的函数,当我单击一个名为“goright”的分区时,它会执行一些操作。

    我想这样做,当我在DIV“goright”上悬停时,它会在我悬停的时间内反复调用函数(稍微延迟),然后什么都不做,一旦我移开鼠标,就停止。

    我试过setinterval,但我认为我误解了它是如何工作的,所以它不能正常工作。

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Alex Wayne    14 年前

    不使用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毫秒一次。

    基本上,在mouseover中将布尔值设置为true,然后设置为false并将鼠标移出。除非变量为真,否则不要安排下一个调用。此外,除非需要,否则不会每隔100毫秒调用一个函数。这意味着在悬停之前不会发生任何事情,将var设置为true并启动重复函数。