$elem.bind('error error2',error)
.unbind('error error2')
.trigger('error').triggerHandler('error2');
+
+ message = "unbind without a type or handler";
+ $elem.bind("error error2.test",error)
+ .unbind()
+ .trigger("error").triggerHandler("error2");
});
test("unbind(eventObject)", function() {
});
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;
// bind one pair in one order
jQuery('span#liveSpan1 a').live('click', function(){ lived++; return false; });
- jQuery('span#liveSpan1').live('click', function(){ livee++; });
+ jQuery('span#liveSpan1').live('click', function(){ livee++; });
jQuery('span#liveSpan1 a').click();
equals( lived, 1, "Verify that only one first handler occurred." );
equals( livee, 0, "Verify that second handler don't." );
// and one pair in inverse
- jQuery('#liveHandlerOrder span#liveSpan2').live('click', function(){ livee++; });
+ jQuery('#liveHandlerOrder span#liveSpan2').live('click', function(){ livee++; });
jQuery('#liveHandlerOrder span#liveSpan2 a').live('click', function(){ lived++; return false; });
jQuery('span#liveSpan2 a').click();
// 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');
});
/*