天天看點

JavaScript定時器setInterval()隻執行一次解決方法

為了說明問題,代碼很短

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)      
var test = function(num){
     console.log(num)
 }
 num = 10
 timer1 = setInterval(function(){test(num)}, 1000)
 timer2 = setInterval(function(){num++}, 2000)      

繼續閱讀