運行會發現3秒后執行一次就不執行了,這就是兩者的差別,使用哪一個看我們的具體需求,其實變通一下也可以使setTimeout具有和setInterval同樣的功能,例如:
<script>function test(){ alert('111'); setTimeout('test()',3000);//函數內調用}setTimeout('test()',3000); //3秒之后執行一次(僅僅執行一次)</script> 在函數內執行了setTimeout,這樣我們執行后會發現也是每隔3秒執行一次的。另外要注意的是,有時我們需要手動停止執行,例如我們使用定時器實現了圖片的漂浮功能(每隔一定時間設置圖片的坐標),當鼠標移動到圖片時我們需要定時器“失效”,這如何實現呢?如果使用了setInterval那很好辦,在執行setInterval后,回返回一個timer ID,如果將該ID傳遞給函數clearInterval,就可以終止執行調用過的函數了,例如:<div id="show">0</div><script>function test(){ var obj = document.getElementById('show'); obj.innerHTML = parseInt(obj.innerHTML) + 1;}function start_add(){ time_id = setInterval('test()',500);//每隔0.5秒執行一次函數test()}</script><input type="button" value="點擊開始執行" onclick="start_add();" /><input type="button" value="點擊終止執行" onclick="clearInterval(time_id);" /> 可以執行一下以上代碼看一下效果。新聞熱點
疑難解答