我的功能正常运行一次,但我希望它重复运行:
$('button').click( function(){
setInterval(magicWords(7,3), 1000);
});
我尝试在函数本身中硬连接参数并运行它parameter-less,但仍然不行......?
答案 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);