zukucode
主にWEB関連の情報を技術メモとして発信しています。

JavaScript addEventListenerで引数を設定する方法

addEventListenerでイベントを指定するときに、指定したファンクションに引数を設定したい場合があります。

例えば以下のように指定してもaddEventListenerでイベントを設定するタイミング(loadイベント)でwritelogイベントそのものが実行されてしまいます。

なので、画面表示時にボタンがクリックされました。のログが出力され、ボタンをクリックしても何も反応しません。

function writelog (message) {
  console.log(message);
}

window.addEventListener('load', function () {
  document.getElementById('button').addEventListener('click', writelog('ボタンがクリックされました。'));
});

以下のように設定したいファンクションをfunctionで囲うとうまくいきます。

function writelog (message) {
  console.log(message);
}

window.addEventListener('load', function () {
  document.getElementById('button').addEventListener('click', function () { writelog('ボタンがクリックされました。'); });
});

関連記事