検索

ホームページ  >  に質問  >  本文

setTimeout と addEventListener に関する問題

これはルーキーで書かれたコードです;

setTimeout がどれだけ長く設定されていても、最終結果は innerHtml に直接表示されます;

これはなぜですか

<!DOCTYPE html>

<html>

<head>

<meta charset= "utf -8">

<title>ルーキー チュートリアル (runoob.com)</title>

</head>

<body>

ドキュメントには、onmousemove イベント ハンドラーが追加されており、ドキュメント内でマウスが移動されたときに乱数が表示されます。

ボタンをクリックしてイベント ハンドラーを削除します。

#<button id='demo1'>クリックしてください</button>

<p id="demo">

<script>

document.getElementById("demo1").addEventListener("click", myFunction);

var time = 5;

function myFunction() {

document.getElementById("demo").innerHTML = 時間;

removeHandler(time);

}

function RemoveHandler(i) {

i--;

document.getElementById("demo").innerHTML = i;

setTimeout(removeHandler(i),1000);

# }

</script>

</body>

</html>

hhhh1640日前1222

全員に返信(1)返信します

  • 天蓬老师

    天蓬老师2020-07-17 19:57:46

    setTime() のコールバック関数は非同期で実行され、メインのコール スタックがクリアされた場合にのみタスク キューからコール スタックに入るため、前述の状況が発生します。

    返事
    0
  • キャンセル返事