diff options
author | jeresig <jeresig@gmail.com> | 2010-01-23 16:37:12 -0500 |
---|---|---|
committer | jeresig <jeresig@gmail.com> | 2010-01-23 16:37:12 -0500 |
commit | 3e286440d55749382a644ea97b4f0b2587779d65 (patch) | |
tree | 41a0f1d8c70886fa94b4fca91eba1fd99421b131 | |
parent | 8ea634fd07afb58c6eac3ef994adf562292fafe7 (diff) | |
download | jquery-3e286440d55749382a644ea97b4f0b2587779d65.tar.gz jquery-3e286440d55749382a644ea97b4f0b2587779d65.zip |
Make sure that .die() with no args works. Fixes #5789.
-rw-r--r-- | src/event.js | 6 | ||||
-rw-r--r-- | test/unit/event.js | 17 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/event.js b/src/event.js index 7a27fb812..a4b8f6cdb 100644 --- a/src/event.js +++ b/src/event.js @@ -850,9 +850,9 @@ jQuery.each(["live", "die"], function( i, name ) { data = undefined; } - types = types.split( /\s+/ ); + types = (types || "").split( /\s+/ ); - while ( (type = types[ i++ ]) ) { + while ( (type = types[ i++ ]) != null ) { type = type === "focus" ? "focusin" : // focus --> focusin type === "blur" ? "focusout" : // blur --> focusout type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support @@ -934,7 +934,7 @@ function liveHandler( event ) { } function liveConvert( type, selector ) { - return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "&")].join("."); + return "live." + (type ? type + "." : "") + selector.replace(/\./g, "`").replace(/ /g, "&"); } jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + diff --git a/test/unit/event.js b/test/unit/event.js index 799851dd6..99ed41936 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -864,11 +864,26 @@ test(".live()/.die()", function() { jQuery("#nothiddendiv div").die("click"); }); +test("die all bound events", function(){ + expect(1); + + var count = 0; + var div = jQuery("div#nothiddendivchild"); + + div.live("click submit", function(){ count++; }); + div.die(); + + div.trigger("click"); + div.trigger("submit"); + + equals( count, 0, "Make sure no events were triggered." ); +}); + test("live with multiple events", function(){ expect(1); var count = 0; - var div = jQuery("div#nothiddendivchild") + var div = jQuery("div#nothiddendivchild"); div.live("click submit", function(){ count++; }); |