こんにちは、
今回は、addEventListener登録時に関数を実行させない方法を記します。
javascriptでaddEventListenerを使用してイベントをトリガーに関数を実行したいとき、
引数があると、登録時に実行されてしまいます。
引数がない場合は、通常通りの記述で良いですが、
//実行されない element.addEventListener("click",test); function test(){ console.log("実行されない") }
引数がある場合、要素に対してイベントリスナーを追加した時点で関数が実行されます。
//実行される element.addEventListener("click",test("hello")); function test(msg){ console.log(msg) } //出力:hello
即時関数内で関数を呼び出せば実行されない
引数がある場合は即時関数内で引数ありの関数を実行することで
登録に関数が実行されることはなく、イベント実行時のみ関数を呼び出すことが可能です。
//イベント実行時のみ element.addEventListener("click",function(){ test("hello");}); function test(msg){ console.log(msg); }
「function(){ 関数(引数)}」とすることでイベントトリガーでのみ実行可能です。
以上です。
コメント