diff --git a/src/event.js b/src/event.js index 56da7acc..9f384fbc 100644 --- a/src/event.js +++ b/src/event.js @@ -109,9 +109,9 @@ jQuery.event = { if ( events ) { // Unbind all events for the element - if ( types == undefined ) + if ( types == undefined || types[0] == "." ) for ( var type in events ) - this.remove( elem, type ); + this.remove( elem, type + (types || "") ); else { // types is actually an event object here if ( types.type ) { diff --git a/test/unit/event.js b/test/unit/event.js index da6dd792..ba29ab7e 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -72,6 +72,10 @@ test("bind(), trigger change on select", function() { test("bind(), namespaced events, cloned events", function() { expect(6); + $("#firstp").bind("custom.test",function(e){ + ok(true, "Custom event triggered"); + }); + $("#firstp").bind("click",function(e){ ok(true, "Normal click triggered"); }); @@ -92,6 +96,12 @@ test("bind(), namespaced events, cloned events", function() { // Trigger the remaining fn (1) $("#firstp").trigger("click"); + // Remove the remaining fn + $("#firstp").unbind(".test"); + + // Trigger the remaining fn (0) + $("#firstp").trigger("custom"); + // using contents will get comments regular, text, and comment nodes $("#nonnodes").contents().bind("tester", function () { equals(this.nodeType, 1, "Check node,textnode,comment bind just does real nodes" );