JavaScript

jQueryのカスタムイベントをバニラJSで受け取る

jQueryのtrigger()とかで発火するカスタムイベントを、バニラJSでどうやって受け取るのかというやりかたのメモ。
(jQuery3.2.1で検証)

$('#hoge').trigger('fugaPiyo', {foo: 'bar'});

onloadとかonclickと同じく、on~というプロパティに関数を代入すればよろし。
ただし、onのあとに続くイベント名は小文字始まりのローワーキャメルケースであることに注意。

<div id="hoge">hoge</div>
document.getElementById('hoge')
.onfugaPiyo = function(e, params) {
    console.log(this);      // Element
    console.log(e);         // jQueryEvent
    console.log(params);    // {foo: "bar"}
};

$('#hoge').trigger('fugaPiyo', {foo: 'bar'});

渡されるイベントオブジェクトはjQueryEventであることも注意。

ちなみに下記のようなaddEventListener()を使った方法は使えない模様。

document.getElementById('hoge')
.addEventListener('fugaPiyo', function(e, params) {
    // any
});
スポンサーリンク
管理人

システムえんじにゃー🐈
趣味はエレキギターなど。作曲したい。
WoWs/プリコネ
記事に関する質問はお気軽にどうぞ。

surface0 (さーふぇす)をフォローする
surface0 (さーふぇす)をフォローする

コメント

タイトルとURLをコピーしました