From: Colin Snover Date: Tue, 12 Oct 2010 23:49:37 +0000 (-0500) Subject: Fix patch for #7150, which was not deleting the events object properly on plain JS... X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=1518ae1aedaafa820ed689ecf26cf43e92913896 Fix patch for #7150, which was not deleting the events object properly on plain JS objects. Thanks to jitter for catching it. --- diff --git a/src/event.js b/src/event.js index 1bbf134..ab75670 100644 --- a/src/event.js +++ b/src/event.js @@ -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 ); diff --git a/test/unit/event.js b/test/unit/event.js index b37b253..f2e981e 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -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() {