Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix #13208: only check elements for delegation matches
  • Loading branch information
gibson042 committed Jan 16, 2013
1 parent 65df32d commit fc2ba2e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/event.js
Expand Up @@ -410,8 +410,9 @@ jQuery.event = {

for ( ; cur != this; cur = cur.parentNode || this ) {

// Don't check non-elements (#13208)
// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
if ( cur.disabled !== true || event.type !== "click" ) {
if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) {
matches = [];
for ( i = 0; i < delegateCount; i++ ) {
handleObj = handlers[ i ];
Expand Down
11 changes: 11 additions & 0 deletions test/unit/event.js
Expand Up @@ -1811,6 +1811,17 @@ test( "delegated event with selector matching Object.prototype property (#13203)
equal( matched, 0, "Nothing matched 'toString'" );
});

test( "delegated event with intermediate DOM manipulation (#13208)", function() {
expect(1);

jQuery("#foo").on( "click", "#sap", function() {});
jQuery("#sap").on( "click", "#anchor2", function() {
jQuery( this.parentNode ).remove();
ok( true, "Element removed" );
});
jQuery("#anchor2").trigger("click");
});

test("stopPropagation() stops directly-bound events on delegated target", function() {
expect(1);

Expand Down

0 comments on commit fc2ba2e

Please sign in to comment.