私の関数は一度正しく実行されますが、繰り返し実行したいです:
$('button').click( function(){
setInterval(magicWords(7,3), 1000);
});
関数自体にパラメーターを配線して、パラメーターなしで実行しようとしましたが、それでもうまくいきません...?
私の関数は一度正しく実行されますが、繰り返し実行したいです:
$('button').click( function(){
setInterval(magicWords(7,3), 1000);
});
関数自体にパラメーターを配線して、パラメーターなしで実行しようとしましたが、それでもうまくいきません...?
このようにすることができます。
$('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);
クロージャを使用:
setInterval( function(){ magicWords(7,3); }, 1000);