2

我的函数一次正确运行,但我希望它重复运行:

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

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

});

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

4

2 回答 2

8

你可以这样做。

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

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

});

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

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

setInterval(magicWords.bind(this, 7,3), 1000);
于 2013-06-27T05:22:52.647 回答
5

使用闭包

setInterval( function(){ magicWords(7,3); }, 1000); 
于 2013-06-27T05:22:44.367 回答