5

まだ DOM に含まれていない DOM 要素があり、DOM イベントをトリガーしたいと考えています。

イベントはバブルアップしません。しかし、jQuery ではそれが可能です。私には奇妙に思えます。

この動作は、 Safari と Chromeで再現できます(Firefox では正しく動作します — イベントがバブルアップします)。

var log = function(event) {console.log('Clicked on div', event);};

// Create DOM element.
var div = document.createElement('div');
// Don't append it to DOM. Though it works if we append it there.
// document.body.appendChild(div);
div.innerHTML = '<a id="outer"><span class="inner">yo</span></a>';

// Does not work.
div.addEventListener('click', log);
div.querySelector('#outer').click();

// Works!?
$(div).on('click', log);
$(div).find('#outer').click();

jQueryはカスタムイベントバブリング戦略を実装していますか? ここで間違っているのはブラウザですか?

編集:バグを作成しました

4

1 に答える 1