X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fevent.js;h=4d2b0aafe246466bf9aae4921e9b9b63d9ac4fe3;hb=2b7642cff025be3b8ac019ae77f2f19ecd07fa87;hp=e12f3b753c9e8be5cec65e5b2abfd861b1a0c51a;hpb=ec7baf230d3c246dadf00c94115e6668425b9354;p=jquery.git diff --git a/test/unit/event.js b/test/unit/event.js index e12f3b7..4d2b0aa 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(42); var submit = 0, div = 0, livea = 0, liveb = 0; @@ -533,6 +533,15 @@ test(".live()/.die()", function() { equals( livea, 5, "die Click on inner div" ); equals( liveb, 2, "die Click on inner div" ); + // Make sure that stopPropgation doesn't stop live events + jQuery("div#nothiddendivchild").live("click", function(e){ liveb++; e.stopPropagation(); }); + jQuery("div#nothiddendivchild").trigger("click"); + equals( submit, 1, "stopPropagation Click on inner div" ); + equals( div, 6, "stopPropagation Click on inner div" ); + equals( livea, 6, "stopPropagation Click on inner div" ); + equals( liveb, 3, "stopPropagation Click on inner div" ); + + jQuery("div#nothiddendivchild").die("click"); jQuery("div#nothiddendiv").die("click"); jQuery("div").die("click"); jQuery("div").die("submit"); @@ -588,6 +597,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('').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"); }); /*