X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fevent.js;h=d2411528cd2bb5b30cc6a2653a79a85f4e5c9dda;hb=92a076cb2f7679043575977092be1233cb1c687f;hp=2ba256172a37c6efaaa60d24deb98b244bd6f474;hpb=8d9aa015c18e85f1f0aee1159e7928183483a5fd;p=jquery.git diff --git a/test/unit/event.js b/test/unit/event.js index 2ba2561..d241152 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -489,7 +489,7 @@ test("toggle(Function, Function, ...)", function() { }); test(".live()/.die()", function() { - expect(46); + expect(52); var submit = 0, div = 0, livea = 0, liveb = 0; @@ -561,6 +561,24 @@ test(".live()/.die()", function() { jQuery("div").die("click"); jQuery("div").die("submit"); + // Test binding with a different context + var clicked = 0, container = jQuery('#main')[0]; + jQuery("#foo", container).live("click", function(e){ clicked++; }); + jQuery("div").trigger('click'); + jQuery("#foo").trigger('click'); + jQuery("#main").trigger('click'); + jQuery("body").trigger('click'); + equals( clicked, 2, "live with a context" ); + + // Make sure the event is actually stored on the context + ok( jQuery.data(container, "events").live, "live with a context" ); + + // Test unbinding with a different context + jQuery("#foo", container).die("click"); + jQuery("#foo").trigger('click'); + equals( clicked, 2, "die with a context"); + + // Verify that return false prevents default action jQuery("#anchor2").live("click", function(){ return false; }); var hash = window.location.hash; @@ -649,6 +667,17 @@ test(".live()/.die()", function() { // Cleanup jQuery("span#liveSpan1 a, span#liveSpan1, span#liveSpan2 a, span#liveSpan2").die("click"); + + // Test this, target and currentTarget are correct + jQuery('span#liveSpan1').live('click', function(e){ + equals( this.id, 'liveSpan1', 'Check the this within a live handler' ); + equals( e.currentTarget.id, 'liveSpan1', 'Check the event.currentTarget within a live handler' ); + equals( e.target.nodeName.toUpperCase(), 'A', 'Check the event.target within a live handler' ); + }); + + jQuery('span#liveSpan1 a').click(); + + jQuery('span#liveSpan1').die('click'); }); /*