1

インライン コードのみを実行する (外部 js ファイルやタグを実行しない) ことに制限されていることを考慮して、特定の関数を 10 ミリ秒ごとに実行する方法はありますか?

私が使用できるのは次のとおりです。

<div onmouseover="functions here" onmouseout="functions here">

具体的には、marginLeftを使って10msごとに50pxで別の要素を左に移動したいのですが、上記のようにexternail関数やjsライブラリを実行できません。

setInterval(function, 10) を使用して onmouseover にすべて組み込むことを考えていましたが、マウスアウトが発生したときにこれを停止する方法がわかりません。

.on のような jQuery イベント ハンドラーを使用できることはわかっていますが、これらは外部から (インラインではなく) ロードする必要があるため、ここではオプションではありません。

4

1 に答える 1

1

グローバル変数を設定します。

<div onmouseover="if (!window.intervalId)
                  window.intervalId=setInterval(function() {/*your code*/}, 10);"
          onmouseout="clearInterval(window.intervalId); window.intervalId=null;">
于 2012-06-04T12:55:37.487 に答える