みかづきブログ その3

3ヶ月つづけてみました。

windowにaddEventListenerしたイベントをjQueryでtriggerしようとすると発火しないときがある

kimizuka.hatenablog.com

window.addEventListener("resize", _handleResize, false);

function _handleResize() {
  // ...
}

でリサイズイベントを張って、

window.dispatchEvent(new Event("resize"));

と、初期化のタイミングでイベントを発火させていたのですが、
IE9、IE10ではfireEventをつかわなければなりません。

Can I use... Support tables for HTML5, CSS3, etc

もろもろ考えた結果、

$(window).trigger("resize");

と、jQueryでtriggerすればブラウザの際を吸収できると思ったのですが、addEventListenerしたイベントはtriggerできませんでした。

以下に検証結果をまとめます。


検証結果

発火しない
window.addEventListener("resize", _handleResize, false);

$(window).trigger("resize");
発火する
window.onresize = function() {
  //...
};

$(window).trigger("resize");
発火しない
window.addEventListener("click", _handleClick, false);

$(window).trigger("click");
発火する
document.body.addEventListener("click", _handleClick, false);

$(document.body).trigger("click");
発火する
window.addEventListener("click", _handleClick, false);

$(document.body).trigger("click");




ツイッターやってます!