git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make sure that elements that have been removed also have their special events cleaned...
[jquery.git]
/
src
/
manipulation.js
diff --git
a/src/manipulation.js
b/src/manipulation.js
index
a10feae
..
4e7a31e
100644
(file)
--- a/
src/manipulation.js
+++ b/
src/manipulation.js
@@
-5,7
+5,7
@@
var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
rtagName = /<([\w:]+)/,
rtbody = /<tbody/i,
rhtml = /<|&#?\w+;/,
rtagName = /<([\w:]+)/,
rtbody = /<tbody/i,
rhtml = /<|&#?\w+;/,
- rnocache = /<script|<object|<embed|<option/i,
+ rnocache = /<script|<object|<embed|<option|<style/i,
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, // checked="checked" or checked (html5)
fcloseTag = function( all, front, tag ) {
return rselfClosing.test( tag ) ?
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, // checked="checked" or checked (html5)
fcloseTag = function( all, front, tag ) {
return rselfClosing.test( tag ) ?
@@
-547,7
+547,7
@@
jQuery.extend({
},
cleanData: function( elems ) {
},
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 ];
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 ) {
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 );
+ }
}
}
}
}