Commit 1d8bf0a2 authored by Dave Methvin's avatar Dave Methvin

Fix #12203. .undelegate() should not remove direcly bound events.

parent 37e8b448
...@@ -973,7 +973,7 @@ jQuery.fn.extend({ ...@@ -973,7 +973,7 @@ jQuery.fn.extend({
}, },
undelegate: function( selector, types, fn ) { undelegate: function( selector, types, fn ) {
// ( namespace ) or ( selector, types [, fn] ) // ( namespace ) or ( selector, types [, fn] )
return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn ); return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
}, },
trigger: function( type, data ) { trigger: function( type, data ) {
......
...@@ -2376,18 +2376,24 @@ test("stopPropagation() stops directly-bound events on delegated target", functi ...@@ -2376,18 +2376,24 @@ test("stopPropagation() stops directly-bound events on delegated target", functi
}); });
test("undelegate all bound events", function(){ test("undelegate all bound events", function(){
expect(1); expect(2);
var count = 0; var count = 0,
var div = jQuery("#body"); clicks = 0,
div = jQuery("#body");
div.delegate("div#nothiddendivchild", "click submit", function(){ count++; }); div.delegate( "div#nothiddendivchild", "click submit", function(){ count++; } );
div.bind( "click", function(){ clicks++; } );
div.undelegate(); div.undelegate();
jQuery("div#nothiddendivchild").trigger("click"); jQuery("div#nothiddendivchild").trigger("click");
jQuery("div#nothiddendivchild").trigger("submit"); jQuery("div#nothiddendivchild").trigger("submit");
equal( count, 0, "Make sure no events were triggered." ); equal( count, 0, "Make sure no events were triggered." );
div.trigger("click");
equal( clicks, 2, "Make sure delegated and directly bound event occurred." );
div.unbind("click");
}); });
test("delegate with multiple events", function(){ test("delegate with multiple events", function(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment