jquery event: closes #4033. e.currentTarget wasn't being enforced for native events...
authorAriel Flesler <aflesler@gmail.com>
Tue, 17 Feb 2009 12:38:16 +0000 (12:38 +0000)
committerAriel Flesler <aflesler@gmail.com>
Tue, 17 Feb 2009 12:38:16 +0000 (12:38 +0000)
src/event.js
test/unit/event.js

index e707015..a50fe89 100644 (file)
@@ -240,7 +240,8 @@ jQuery.event = {
                var all, handlers;
 
                event = arguments[0] = jQuery.event.fix( event || window.event );
-
+               event.currentTarget = this;
+               
                // Namespaced event handlers
                var namespaces = event.type.split(".");
                event.type = namespaces.shift();
index 1da9b59..840c98a 100644 (file)
@@ -417,6 +417,20 @@ test("trigger(eventObject, [data], [fn])", function() {
        $parent.unbind().remove();
 });
 
+test("jQuery.Event.currentTarget", function(){
+       expect(2);
+       
+       var counter = 0,
+               $elem = jQuery('<button>a</button>').click(function(e){
+               equals( e.currentTarget, this, "Check currentTarget on "+(counter++?"native":"fake") +" event" );
+       });
+       
+       // Fake event
+       $elem.trigger('click');
+       // Native event (#4033)
+       triggerEvent( $elem[0], 'click' );
+});
+
 test("toggle(Function, Function, ...)", function() {
        expect(11);