Made the expando code attach properties to an anonymous object, as opposed to the...
authorJohn Resig <jeresig@gmail.com>
Mon, 10 Sep 2007 18:39:16 +0000 (18:39 +0000)
committerJohn Resig <jeresig@gmail.com>
Mon, 10 Sep 2007 18:39:16 +0000 (18:39 +0000)
src/core.js

index 969f3d4..140208d 100644 (file)
@@ -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