Make sure that .die() with no args works. Fixes #5789.

This commit is contained in:
jeresig 2010-01-23 16:37:12 -05:00
parent 8ea634fd07
commit 3e286440d5
2 changed files with 19 additions and 4 deletions

View file

@ -850,9 +850,9 @@ jQuery.each(["live", "die"], function( i, name ) {
data = undefined; 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 = type === "focus" ? "focusin" : // focus --> focusin
type === "blur" ? "focusout" : // blur --> focusout type === "blur" ? "focusout" : // blur --> focusout
type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
@ -934,7 +934,7 @@ function liveHandler( event ) {
} }
function liveConvert( type, selector ) { 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 " + jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +

View file

@ -864,11 +864,26 @@ test(".live()/.die()", function() {
jQuery("#nothiddendiv div").die("click"); 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(){ test("live with multiple events", function(){
expect(1); expect(1);
var count = 0; var count = 0;
var div = jQuery("div#nothiddendivchild") var div = jQuery("div#nothiddendivchild");
div.live("click submit", function(){ count++; }); div.live("click submit", function(){ count++; });