運行會發(fā)現(xiàn)3秒后執(zhí)行一次就不執(zhí)行了,這就是兩者的差別,使用哪一個看我們的具體需求,其實變通一下也可以使setTimeout具有和setInterval同樣的功能,例如:
<script>function test(){ alert('111'); setTimeout('test()',3000);//函數(shù)內(nèi)調(diào)用}setTimeout('test()',3000); //3秒之后執(zhí)行一次(僅僅執(zhí)行一次)</script> 在函數(shù)內(nèi)執(zhí)行了setTimeout,這樣我們執(zhí)行后會發(fā)現(xiàn)也是每隔3秒執(zhí)行一次的。另外要注意的是,有時我們需要手動停止執(zhí)行,例如我們使用定時器實現(xiàn)了圖片的漂浮功能(每隔一定時間設(shè)置圖片的坐標(biāo)),當(dāng)鼠標(biāo)移動到圖片時我們需要定時器“失效”,這如何實現(xiàn)呢?如果使用了setInterval那很好辦,在執(zhí)行setInterval后,回返回一個timer ID,如果將該ID傳遞給函數(shù)clearInterval,就可以終止執(zhí)行調(diào)用過的函數(shù)了,例如:<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秒執(zhí)行一次函數(shù)test()}</script><input type="button" value="點擊開始執(zhí)行" onclick="start_add();" /><input type="button" value="點擊終止執(zhí)行" onclick="clearInterval(time_id);" /> 可以執(zhí)行一下以上代碼看一下效果。新聞熱點
疑難解答
圖片精選