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 を使います。
- https://developer.mozilla.org/ja/docs/Web/API/Document/createEvent
- https://developer.mozilla.org/ja/docs/Web/API/CustomEvent/initCustomEvent
- https://developer.mozilla.org/ja/docs/Web/API/CustomEvent/CustomEvent