From: John Resig Date: Mon, 10 Sep 2007 18:39:16 +0000 (+0000) Subject: Made the expando code attach properties to an anonymous object, as opposed to the... X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=6476b15f1a6c3651c18e354d41ee0ab9b9a23e16 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. --- diff --git a/src/core.js b/src/core.js index 969f3d4..140208d 100644 --- a/src/core.js +++ b/src/core.js @@ -440,7 +440,7 @@ jQuery.extend = jQuery.fn.extend = function() { return target; }; -var expando = "jQuery" + (new Date()).getTime(), uuid = 0; +var expando = "jQuery" + (new Date()).getTime(), uuid = 0, win = {}; jQuery.extend({ noConflict: function(deep) { @@ -485,6 +485,8 @@ jQuery.extend({ cache: {}, data: function( elem, name, data ) { + elem = elem == window ? win : elem; + var id = elem[ expando ]; // Compute a unique ID for the element @@ -505,6 +507,8 @@ jQuery.extend({ }, removeData: function( elem, name ) { + elem = elem == window ? win : elem; + var id = elem[ expando ]; // If we want to remove a specific section of the element's data @@ -528,7 +532,8 @@ jQuery.extend({ } catch(e){ // IE has trouble directly removing the expando // but it's ok with using removeAttribute - elem.removeAttribute( expando ); + if ( elem.removeAttribute ) + elem.removeAttribute( expando ); } // Completely remove the data cache