X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fevent.js;h=d2411528cd2bb5b30cc6a2653a79a85f4e5c9dda;hb=30e760b63fd6d82f30833cd2864f245dd9594cd9;hp=840c98a5c3e39bff55a9ceddf6526d32661d1bba;hpb=0a1b0db347119a2e45d3d31285223ead27b64506;p=jquery.git diff --git a/test/unit/event.js b/test/unit/event.js index 840c98a..d241152 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -418,7 +418,7 @@ test("trigger(eventObject, [data], [fn])", function() { }); test("jQuery.Event.currentTarget", function(){ - expect(2); + expect(1); var counter = 0, $elem = jQuery('').click(function(e){ @@ -427,8 +427,9 @@ test("jQuery.Event.currentTarget", function(){ // Fake event $elem.trigger('click'); - // Native event (#4033) - triggerEvent( $elem[0], 'click' ); + + // Cleanup + $elem.unbind(); }); test("toggle(Function, Function, ...)", function() { @@ -488,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; @@ -560,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; @@ -648,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'); }); /*