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