JavaScript

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

JavaScript

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
});
スポンサーリンク
記事を書いた人

システムえんじにゃー🐈
趣味はエレキギター、自転車など。作曲したい。
World of Warshipsやってます。
記事に関する質問はお気軽にどうぞ。

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

コメント

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