From 703e89ba302e86bba1f4777ce1a6aee6f38b7b87 Mon Sep 17 00:00:00 2001 From: John Resig Date: Sun, 3 Feb 2008 04:33:11 +0000 Subject: [PATCH] Added support for .unbind(".test") to unbind all namespaced events on an element. --- src/event.js | 4 ++-- test/unit/event.js | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/event.js b/src/event.js index 56da7ac..9f384fb 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 da6dd79..ba29ab7 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" ); -- 1.7.10.4