});
test("jQuery.Event.currentTarget", function(){
- expect(2);
+ expect(1);
var counter = 0,
$elem = jQuery('<button>a</button>').click(function(e){
// Fake event
$elem.trigger('click');
- // Native event (#4033)
- triggerEvent( $elem[0], 'click' );
+
+ // Cleanup
+ $elem.unbind();
});
test("toggle(Function, Function, ...)", function() {
});
test(".live()/.die()", function() {
- expect(46);
+ expect(52);
var submit = 0, div = 0, livea = 0, liveb = 0;
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;
// 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');
});
/*