aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
authorJohn Resig <jeresig@gmail.com>2009-01-10 19:57:07 +0000
committerJohn Resig <jeresig@gmail.com>2009-01-10 19:57:07 +0000
commitb1018cad1256a7b9cc47e675b2a9e22c409b7aed (patch)
tree469a175290a160751f092dca290b2d974f0185f9 /test/unit
parent29bf601f3495ced43fbb6152bf9306f2618bb955 (diff)
downloadjquery-b1018cad1256a7b9cc47e675b2a9e22c409b7aed.tar.gz
jquery-b1018cad1256a7b9cc47e675b2a9e22c409b7aed.zip
Landed a fix for when a DOM element gets accidentally removed by another live event handler. Thanks to Irae for the patches. Fixed #3820.
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/event.js16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/unit/event.js b/test/unit/event.js
index e12f3b753..83a0797c8 100644
--- a/test/unit/event.js
+++ b/test/unit/event.js
@@ -474,7 +474,7 @@ test("toggle(Function, Function, ...)", function() {
});
test(".live()/.die()", function() {
- expect(36);
+ expect(38);
var submit = 0, div = 0, livea = 0, liveb = 0;
@@ -588,6 +588,20 @@ test(".live()/.die()", function() {
// Cleanup
jQuery("#nothiddendiv").die("foo", callback);
+
+ // Make sure we don't loose the target by DOM modifications
+ // after the bubble already reached the liveHandler
+ var livec = 0, elemDiv = jQuery("#nothiddendivchild").html('<span></span>').get(0);
+
+ jQuery("#nothiddendivchild").live("click", function(e){ jQuery("#nothiddendivchild").html(''); });
+ jQuery("#nothiddendivchild").live("click", function(e){ if(e.target) {livec++;} });
+
+ jQuery("#nothiddendiv span").click();
+ equals( jQuery("#nothiddendiv span").length, 0, "Verify that first handler occurred and modified the DOM." );
+ equals( livec, 1, "Verify that second handler occurred even with nuked target." );
+
+ // Cleanup
+ jQuery("#nothiddendivchild").die("click");
});
/*