如何使用setInterval()重复调用带有参数的函数?

时间:2013-06-27 05:21:52

标签: javascript jquery function setinterval

我的功能正常运行一次,但我希望它重复运行:

$('button').click( function(){

    setInterval(magicWords(7,3), 1000); 

});

我尝试在函数本身中硬连接参数并运行它parameter-less,但仍然不行......?

2 个答案:

答案 0 :(得分:8)

你可以这样做。

$('button').click( function(){

    setInterval(function(){
        magicWords(7,3)
     }, 1000); 

});

当你执行setInterval(magicWords(7,3), 1000);时,它会在执行语句时调用该函数,并且实际上函数的结果(如果它没有返回任何内容,可能是未定义的)将被设置为以该时间间隔而不是函数本身运行。 你可以使用

当然,如果您准备添加垫片以支持早期浏览器,您可以使用ecmaScript 5 function.bind 。这将绑定y 我们的函数在调用时使用指定的上下文和参数。

setInterval(magicWords.bind(this, 7,3), 1000);

答案 1 :(得分:5)

使用closure

setInterval( function(){ magicWords(7,3); }, 1000);