0

「goright」というdivをクリックすると、いくつかのことを行うgoRight()という関数があります。

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でマウスアウトを設定します。変数が true でない限り、次の呼び出しをスケジュールしないでください。また、必要な場合を除き、100 ミリ秒ごとに関数を呼び出しているわけではありません。ホバーするまで何も起こらないことを意味し、var を true に設定して繰り返し機能を開始します。

于 2010-07-03T23:48:24.860 に答える