您的位置:首頁技術文章
文章詳情頁

setTimeout 跟addEventListener問題

瀏覽:82日期:2024-05-30 18:46:59

問題描述

這是放在菜鳥上寫的代碼 ;

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 = time;

removeHandler(time);

}

function removeHandler(i) {

i--;

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

setTimeout(removeHandler(i),1000);

}

</script>

</body>

</html>

問題解答

回答1:

setTime()的回調函數是異步執行,只有主調用棧清空才會從任務隊列進入調用棧,所以就會出現你說的這種情況

相關文章:
国产综合久久一区二区三区