ネイティブのイベントを発火する

jQueryの $(‘#xxx’).trigger(‘click’) などは、jQueryの中ではイベントが発生したように扱われますが、ネイティブのイベントとは違うようです。

ネイティブのイベントを発生させる方法です。

Program

var target = document.getElementById('test');
var detail = { foo: 1 }; // イベントの引数
var event  = new CustomEvent('click', { detail: detail });
target.dispatchEvent(event);

Program(非推奨)(IE用)

var target = document.getElementById('test');
var detail = { foo: 1 }; // イベントの引数
var event  = document.createEvent('CustomEvent');
event.initCustomEvent('click', false, false, detail);
target.dispatchEvent(event);

Program(非推奨)(古い方法)

var target = document.getElementById('test');
var e = document.createEvent('HTMLEvents');
e.initEvent('click', false, true);
target.dispatchEvent(e);

Memo

ブラウザによって使える方法が異なるので注意。

標準は CustomEvent を使います。IEは createEvent + initCustomEvent を使います。

コメントを残す

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