X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fevent.js;h=83a0797c88a3069184de018249515f8dfdf53e85;hb=ea7837776022fe9f2ccdf00ede30728e6f24d919;hp=cbeb9ff0011c9f59650c4b1c653b4a14bb9094db;hpb=d12e8a34e6d96f98ac4f9408a0d61a9ed373f917;p=jquery.git diff --git a/test/unit/event.js b/test/unit/event.js index cbeb9ff..83a0797 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(34); + expect(38); var submit = 0, div = 0, livea = 0, liveb = 0; @@ -571,10 +571,37 @@ test(".live()/.die()", function() { equals( called, 3, "Verify that only one click occurred." ); jQuery("#anchor2").trigger("click"); - equals( called, 3, "Verify that only one click occurred." ); + equals( called, 3, "Verify that no click occurred." ); + + // Make sure that it still works if the selector is the same, + // but the event type is different + jQuery("#nothiddendiv").live("foo", callback); // Cleanup jQuery("#nothiddendiv").die("click", callback); + + jQuery("#nothiddendiv").trigger("click"); + equals( called, 3, "Verify that no click occurred." ); + + jQuery("#nothiddendiv").trigger("foo"); + equals( called, 4, "Verify that one foo occurred." ); + + // 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"); }); /*