});
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');
});
/*