aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeresig <jeresig@gmail.com>2010-01-23 16:37:12 -0500
committerjeresig <jeresig@gmail.com>2010-01-23 16:37:12 -0500
commit3e286440d55749382a644ea97b4f0b2587779d65 (patch)
tree41a0f1d8c70886fa94b4fca91eba1fd99421b131
parent8ea634fd07afb58c6eac3ef994adf562292fafe7 (diff)
downloadjquery-3e286440d55749382a644ea97b4f0b2587779d65.tar.gz
jquery-3e286440d55749382a644ea97b4f0b2587779d65.zip
Make sure that .die() with no args works. Fixes #5789.
-rw-r--r--src/event.js6
-rw-r--r--test/unit/event.js17
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++; });