From 1518ae1aedaafa820ed689ecf26cf43e92913896 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Tue, 12 Oct 2010 18:49:37 -0500 Subject: [PATCH] Fix patch for #7150, which was not deleting the events object properly on plain JS objects. Thanks to jitter for catching it. --- src/event.js | 4 ++-- test/unit/event.js | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) 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() { -- 1.7.10.4