Made the expando code attach properties to an anonymous object, as opposed to the...
[jquery.git] / src / core.js
index c1e7d9f..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
@@ -1020,7 +1025,7 @@ jQuery.each({
        next: "jQuery.nth(a,2,'nextSibling')",
        prev: "jQuery.nth(a,2,'previousSibling')",
        nextAll: "jQuery.dir(a,'nextSibling')",
-       prevtAll: "jQuery.dir(a,'previousSibling')",
+       prevAll: "jQuery.dir(a,'previousSibling')",
        siblings: "jQuery.sibling(a.parentNode.firstChild,a)",
        children: "jQuery.sibling(a.firstChild)",
        contents: "jQuery.nodeName(a,'iframe')?a.contentDocument||a.contentWindow.document:jQuery.makeArray(a.childNodes)"