Fix patch for #7150, which was not deleting the events object properly on plain JS objects. Thanks to jitter for catching it.
This commit is contained in:
parent
ff6ceadbfd
commit
1518ae1aed
|
@ -282,11 +282,11 @@ jQuery.event = {
|
||||||
handle.elem = null;
|
handle.elem = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete elemData[ eventKey ];
|
delete elemData.events;
|
||||||
delete elemData.handle;
|
delete elemData.handle;
|
||||||
|
|
||||||
if ( typeof elemData === "function" ) {
|
if ( typeof elemData === "function" ) {
|
||||||
jQuery.removeData( elem, "events" );
|
jQuery.removeData( elem, eventKey );
|
||||||
|
|
||||||
} else if ( jQuery.isEmptyObject( elemData ) ) {
|
} else if ( jQuery.isEmptyObject( elemData ) ) {
|
||||||
jQuery.removeData( elem );
|
jQuery.removeData( elem );
|
||||||
|
|
|
@ -443,7 +443,7 @@ test("bind(name, false), unbind(name, false)", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test("bind()/trigger()/unbind() on plain object", function() {
|
test("bind()/trigger()/unbind() on plain object", function() {
|
||||||
expect( 5 );
|
expect( 7 );
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
|
@ -459,6 +459,7 @@ test("bind()/trigger()/unbind() on plain object", function() {
|
||||||
|
|
||||||
var events = jQuery(obj).data("__events__");
|
var events = jQuery(obj).data("__events__");
|
||||||
ok( events, "Object has events bound." );
|
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( 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.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." );
|
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
|
// Make sure it doesn't complain when no events are found
|
||||||
jQuery(obj).unbind("test");
|
jQuery(obj).unbind("test");
|
||||||
|
|
||||||
|
equals( obj.__events__, undefined, "Make sure events object is removed" );
|
||||||
});
|
});
|
||||||
|
|
||||||
test("unbind(type)", function() {
|
test("unbind(type)", function() {
|
||||||
|
|
Loading…
Reference in a new issue