Skip to content
Permalink
Browse files

Added support for .unbind(".test") to unbind all namespaced events on…

… an element.
  • Loading branch information
jeresig committed Feb 3, 2008
1 parent 77da945 commit 703e89ba302e86bba1f4777ce1a6aee6f38b7b87
Showing with 12 additions and 2 deletions.
  1. +2 −2 src/event.js
  2. +10 −0 test/unit/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 ) {
@@ -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" );

0 comments on commit 703e89b

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