Skip to content
Permalink
Browse files

Fix #11621, $(document).trigger() must bubble to window.

  • Loading branch information
dmethvin committed May 12, 2012
1 parent 7799f21 commit b6581df5de2083e322dcbede4dce74bacf93af5f
Showing with 7 additions and 5 deletions.
  1. +3 −4 src/event.js
  2. +4 −1 test/unit/event.js
@@ -315,14 +315,13 @@ jQuery.event = {

bubbleType = special.delegateType || type;
cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
old = null;
for ( ; cur; cur = cur.parentNode ) {
for ( old = elem; cur; cur = cur.parentNode ) {
eventPath.push([ cur, bubbleType ]);
old = cur;
}

// Only add window if we got to document (e.g., not plain obj or detached DOM)
if ( old && old === elem.ownerDocument ) {
if ( old === (elem.ownerDocument || document) ) {
eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
}
}
@@ -782,7 +781,7 @@ if ( !jQuery.support.submitBubbles ) {
});
// return undefined since we don't need an event listener
},

postDispatch: function( event ) {
// If form was submitted by the user, bubble the event up the tree
if ( event._submit_bubble ) {
@@ -928,7 +928,7 @@ test("trigger() shortcuts", function() {
});

test("trigger() bubbling", function() {
expect(17);
expect(18);

var win = 0, doc = 0, html = 0, body = 0, main = 0, ap = 0;

@@ -964,6 +964,9 @@ test("trigger() bubbling", function() {
equal( main, 1, "ap bubble" );
equal( ap, 1, "ap bubble" );

jQuery( document ).trigger("click");
equal( win, 4, "doc bubble" );

// manually clean up events from elements outside the fixture
jQuery(document).unbind("click");
jQuery("html, body, #qunit-fixture").unbind("click");

0 comments on commit b6581df

Please sign in to comment.
You can’t perform that action at this time.