[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
});
  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメントを残す