Made the expando code attach properties to an anonymous object, as opposed to the global window object, and fixed a bug where .removeAttribute() tried to fire even if it didn't exist.
This commit is contained in:
parent
899ee03d37
commit
6476b15f1a
|
@ -440,7 +440,7 @@ jQuery.extend = jQuery.fn.extend = function() {
|
||||||
return target;
|
return target;
|
||||||
};
|
};
|
||||||
|
|
||||||
var expando = "jQuery" + (new Date()).getTime(), uuid = 0;
|
var expando = "jQuery" + (new Date()).getTime(), uuid = 0, win = {};
|
||||||
|
|
||||||
jQuery.extend({
|
jQuery.extend({
|
||||||
noConflict: function(deep) {
|
noConflict: function(deep) {
|
||||||
|
@ -485,6 +485,8 @@ jQuery.extend({
|
||||||
cache: {},
|
cache: {},
|
||||||
|
|
||||||
data: function( elem, name, data ) {
|
data: function( elem, name, data ) {
|
||||||
|
elem = elem == window ? win : elem;
|
||||||
|
|
||||||
var id = elem[ expando ];
|
var id = elem[ expando ];
|
||||||
|
|
||||||
// Compute a unique ID for the element
|
// Compute a unique ID for the element
|
||||||
|
@ -505,6 +507,8 @@ jQuery.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
removeData: function( elem, name ) {
|
removeData: function( elem, name ) {
|
||||||
|
elem = elem == window ? win : elem;
|
||||||
|
|
||||||
var id = elem[ expando ];
|
var id = elem[ expando ];
|
||||||
|
|
||||||
// If we want to remove a specific section of the element's data
|
// If we want to remove a specific section of the element's data
|
||||||
|
@ -528,7 +532,8 @@ jQuery.extend({
|
||||||
} catch(e){
|
} catch(e){
|
||||||
// IE has trouble directly removing the expando
|
// IE has trouble directly removing the expando
|
||||||
// but it's ok with using removeAttribute
|
// but it's ok with using removeAttribute
|
||||||
elem.removeAttribute( expando );
|
if ( elem.removeAttribute )
|
||||||
|
elem.removeAttribute( expando );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Completely remove the data cache
|
// Completely remove the data cache
|
||||||
|
|
Loading…
Reference in a new issue