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