X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fevent.js;h=e12f3b753c9e8be5cec65e5b2abfd861b1a0c51a;hb=ec7baf230d3c246dadf00c94115e6668425b9354;hp=fb08a2e083462b637c9b50e54f8b5b357a3788c8;hpb=eced38a30d21d025db3e219f3cce7239754316d8;p=jquery.git diff --git a/test/unit/event.js b/test/unit/event.js index fb08a2e..e12f3b7 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(30); + expect(36); var submit = 0, div = 0, livea = 0, liveb = 0; @@ -550,6 +550,44 @@ test(".live()/.die()", function() { jQuery("#anchor2").trigger("click"); equals( window.location.hash, hash, "e.preventDefault() worked" ); jQuery("#anchor2").die("click"); + + // Test binding the same handler to multiple points + var called = 0; + function callback(){ called++; return false; } + + jQuery("#nothiddendiv").live("click", callback); + jQuery("#anchor2").live("click", callback); + + jQuery("#nothiddendiv").trigger("click"); + equals( called, 1, "Verify that only one click occurred." ); + + jQuery("#anchor2").trigger("click"); + equals( called, 2, "Verify that only one click occurred." ); + + // Make sure that only one callback is removed + jQuery("#anchor2").die("click", callback); + + jQuery("#nothiddendiv").trigger("click"); + equals( called, 3, "Verify that only one click occurred." ); + + jQuery("#anchor2").trigger("click"); + 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); }); /*