setTimeout と addEventListener に関する問題
hh
hh 2020-07-12 18:03:35
0
1
1184

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

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>

hh
hh

全員に返信(1)
Peter-Zhu

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート