Javascript定時器只能執行一次


為了說明問題,代碼很短

    <script> var test = function(){ console.log('a') } timer1 = setInterval(test(), 1000) timer2 = setInterval(console.log('b'), 1000) </script> 

上面的兩個定時器中都只執行了一次,並沒有重復執行。

解決方案一:

函數名不要叫括號

var test = function(){ console.log('a') } timer1 = setInterval(test, 1000) 

解決方案二:

在執行的函數用引號括起來(里面使用單引號,則外面用雙引號)

  var test = function(){ console.log('a') } timer1 = setInterval("test()", 1000) timer2 = setInterval("console.log('b')", 1000) 

使用場景,當重復執行的函數需要傳入參數,傳入的參數有肯能隨時變動,只能用方案二的方法來解決。

 var test = function(num){ console.log(num) } num = 10 timer1 = setInterval("test(num)", 1000) timer2 = setInterval(function(){num++}, 2000) 
 我遇到的問題,是定時器寫法上出錯了,我的定時器有參數,
function setquarz2(num){
setInterval("tellyou2("+num+")", 60000);
}
這是正確寫法,
但是我一開始寫的是下面這樣的,找不到num變量值了,自然就報錯了,就執行一次,或者根本不執行了
function setquarz2(num){
setInterval("tellyou2(num)", 60000);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM