Make sure that elements that have been removed also have their special events cleaned up. Fixes #6084.
This commit is contained in:
parent
6a82f2ae63
commit
da966573c3
3 changed files with 26 additions and 5 deletions
|
@ -547,7 +547,7 @@ jQuery.extend({
|
|||
},
|
||||
|
||||
cleanData: function( elems ) {
|
||||
var data, id, cache = jQuery.cache;
|
||||
var data, id, cache = jQuery.cache, special = jQuery.event.special;
|
||||
|
||||
for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
|
||||
id = elem[ jQuery.expando ];
|
||||
|
@ -556,8 +556,13 @@ jQuery.extend({
|
|||
data = cache[ id ];
|
||||
|
||||
if ( data.events ) {
|
||||
for ( var event in data.events ) {
|
||||
removeEvent( elem, event, data.handle );
|
||||
for ( var type in data.events ) {
|
||||
if ( special[ type ] ) {
|
||||
jQuery.event.remove( elem, type );
|
||||
|
||||
} else {
|
||||
removeEvent( elem, type, data.handle );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue