Fix patch for #7150, which was not deleting the events object properly on plain JS...
authorColin Snover <github.com@zetafleet.com>
Tue, 12 Oct 2010 23:49:37 +0000 (18:49 -0500)
committerColin Snover <github.com@zetafleet.com>
Tue, 12 Oct 2010 23:49:37 +0000 (18:49 -0500)
src/event.js
test/unit/event.js

index 1bbf134..ab75670 100644 (file)
@@ -282,11 +282,11 @@ jQuery.event = {
                                handle.elem = null;
                        }
 
-                       delete elemData[ eventKey ];
+                       delete elemData.events;
                        delete elemData.handle;
 
                        if ( typeof elemData === "function" ) {
-                               jQuery.removeData( elem, "events" );
+                               jQuery.removeData( elem, eventKey );
 
                        } else if ( jQuery.isEmptyObject( elemData ) ) {
                                jQuery.removeData( elem );
index b37b253..f2e981e 100644 (file)
@@ -443,7 +443,7 @@ test("bind(name, false), unbind(name, false)", function() {
 });
 
 test("bind()/trigger()/unbind() on plain object", function() {
-       expect( 5 );
+       expect( 7 );
 
        var obj = {};
 
@@ -459,6 +459,7 @@ test("bind()/trigger()/unbind() on plain object", function() {
 
        var events = jQuery(obj).data("__events__");
        ok( events, "Object has events bound." );
+       equals( obj.events, undefined, "Events object on plain objects is not events" );
        equals( typeof events, "function", "'events' expando is a function on plain objects." );
        equals( obj.test, undefined, "Make sure that test event is not on the plain object." );
        equals( obj.handle, undefined, "Make sure that the event handler is not on the plain object." );
@@ -473,6 +474,8 @@ test("bind()/trigger()/unbind() on plain object", function() {
 
        // Make sure it doesn't complain when no events are found
        jQuery(obj).unbind("test");
+       
+       equals( obj.__events__, undefined, "Make sure events object is removed" );
 });
 
 test("unbind(type)", function() {