Probleme mit setTimeout und addEventListener
hh
hh 2020-07-12 18:03:35
0
1
1214

Dies ist Code, der auf einem Rookie geschrieben wurde.

setTimeout, egal wie lange es eingestellt ist, innerHtml zeigt direkt das Endergebnis an.

Warum ist das so? ;

<head>

<meta charset="utf-8">

<title>Rookie-Tutorial (runoob.com)</title>

</head>

< body>

Das Dokument fügt einen onmousemove-Ereignishandler hinzu, der Zufallszahlen anzeigt, wenn die Maus im Dokument bewegt wird.

Klicken Sie auf die Schaltfläche, um den Event-Handler zu entfernen.

<button id='demo1'>click me</button>

<p id="demo">

<script>

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

var time = 5;

function myFunction() {

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

removeHandler(time);

}

function removeHandler(i) {

i--;

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

setTimeout(removeHandler(i),1000);

}

</script>

</body>

</html>

hh
hh

Antworte allen(1)
Peter-Zhu

setTime()的回调函数是异步执行,只有主调用栈清空才会从任务队列进入调用栈,所以就会出现你说的这种情况

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage