1

setTimeout()クリックが発生した後に呼び出したい。

ユーザーが経過する前にもう一度クリックした場合、300msそのタイマーを停止し、別の機能を起動して、元のタイマーを再起動します。

私は知ってsetTimeout()いますが、この問題にアプローチする方法がわかりません。

4

2 に答える 2

3

JavaScript:

myTimeout = setTimeout(function() {
                // this will fire in 300ms if you don't perform some other action!
          },300); 

document.getElementById("button").click = function() {
   // button clicked, stop the timeout
   clearTimeout(myTimeout);
};

HTML:

<button id="button">Click me</button>

setTimeout は 300ms タイマーを開始します。クリック ハンドラーはクリック イベントをページ上のボタンにバインドします。このボタンがクリックされると、clearTimeout を使用してタイマーが停止します。

setTimeout を呼び出すときは、変数に割り当てます。その後、その変数を使用して、後で clearTimeout を呼び出してタイマーを停止できます。

キープレス、マウスオーバー イベント、ボタンまたは DOM 要素のクリックなど、あらゆるイベントで同じ手法を使用できます。

同じ手順が setInterval にも適用されることに注意してください。

myInterval = setInterval(function() {
               // do stuff every 300ms
             },300);

clearInterval(myInterval);  // stop the interval

addEventListener を使用:

function start() {
    window.addEventListener("click", function() { 
        timeout = setTimeout(function() {
            // do stuff after 300ms after the first click
            clearTimeout(timeout);
            start();
        }, 300)
    }, false);
}

上記は、ページにグローバルクリックリスナーをバインドし、クリック後にタイマーを再帰的にクリアして再起動する必要があります。クリックがない場合、リスナーは停止しますが、これで開始できるはずです。

于 2012-04-09T03:44:45.807 に答える
0

これにはタイムアウトを使用できると思います... window.setTimeout("", 300);

私はあなたが何をしたいのか正確にはわかりませんでした...しかし、これがあなたの助けになることを願っています.

于 2012-04-09T03:39:58.207 に答える