【JavaScript】FirefoxではaddEventListenerに設定するFuncの引数にeventが必要

【JavaScript】FirefoxではaddEventListenerに設定するFuncの引数にeventが必要

前回に引き続きJavascriptです。

こちらもタイトルそのまんまなのですが、AddEventListenerに設定した処理がうまく動きませんでした。

その理由は、firefoxではeventに何も入ってこないというところでした。

// イベントに処理を設定する
function eventSetting(){

var elementList;

// 対象の要素を取得する
elementList = document.querySelectorAll('selector');
// 動作を設定する
elementList.forEach(function(ele, index, arr){

// クリック時処理を設定する
ele.addEventListener('click', func);
});
}
// クリック時処理
function func(){

var target;

// firefoxだとeventに何も入っていないため、エラーとなる
target = event.currentTarget;
}

これだとeventに何も入っていないため、動きません。

そのため、リスナに引数を用意する必要があります。


// イベントに処理を設定する
function eventSetting(){

var elementList;

// 対象の要素を取得する
elementList = document.querySelectorAll('selector');
// 動作を設定する
elementList.forEach(function(ele, index, arr){

// クリック時処理を設定する
ele.addEventListener('click', func);
});
}
// クリック時処理
function func(event){

var target;

// eventに値が入ってくる
target = event.currentTarget;
}

IEで動かなかった、firefoxで動かなかったり、なかなか難儀ですね。

そういえば、IEしか使えない会社は今後どうなるのでしょうね。

来年の初めにサポートが切れてしまった気がします。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です