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('ボタンがクリックされました。'); });
});