javascript – 为什么Firefox setInterval回调参数与其他浏览器不同?

我在Win 7的每个浏览器中都测试了这个脚本.它不仅适用于Firefox(版本3.6.13).

除了返回随机数的Firefox之外,警报框在所有浏览器中都返回“undefined”.这是脚本

function nextSlide(nav){
    alert(nav);
}

jQuery(function(){
    var set = setInterval(nextSlide, 2000); 
});

这是一个live demo

解决方法:

额外参数是回调延迟的毫秒数.从documentation

Callback arguments

setInterval() will pass the number of milliseconds late the callback was called into the callback function, which can confuse it if it expects something else as an argument. To sidestep that problem, use an anonymous function to call your callback.

修复是写这个:

var set = setInterval(function() { nextSlide(); }, 2000);
上一篇:javascript – 我应该在调用setInterval()之前调用clearInterval()


下一篇:javascript – 为什么在事件回调之前执行间隔函数?