X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=140208d16cf387759198ca1ef86ec75fc77aed5f;hb=6476b15f1a6c3651c18e354d41ee0ab9b9a23e16;hp=bedafdce2fb93e769aaad449406a9ab096b139cd;hpb=052aa1445a780f69576a800836be73b57b62a909;p=jquery.git diff --git a/src/core.js b/src/core.js index bedafdc..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,18 +507,22 @@ 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 if ( name ) { - // Remove the section of cache data - delete jQuery.cache[ id ][ name ]; - - // If we've removed all the data, remove the element's cache - name = ""; - for ( name in jQuery.cache[ id ] ) break; - if ( !name ) - jQuery.removeData( elem ); + if ( jQuery.cache[ id ] ) { + // Remove the section of cache data + delete jQuery.cache[ id ][ name ]; + + // If we've removed all the data, remove the element's cache + name = ""; + for ( name in jQuery.cache[ id ] ) break; + if ( !name ) + jQuery.removeData( elem ); + } // Otherwise, we want to remove all of the element's data } else { @@ -526,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 @@ -1018,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)" @@ -1080,10 +1087,20 @@ jQuery.each( { }; }); -jQuery.each( [ "height", "width" ], function(i,n){ +jQuery.each( [ "Height", "Width" ], function(i,name){ + var n = name.toLowerCase(); + jQuery.fn[ n ] = function(h) { - return h == undefined ? - ( this.length ? jQuery.css( this[0], n ) : null ) : - this.css( n, h.constructor == String ? h : h + "px" ); + return this[0] == window ? + jQuery.browser.safari && self["inner" + name] || + jQuery.boxModel && Math.max(document.documentElement["client" + name], document.body["client" + name]) || + document.body["client" + name] : + + this[0] == document ? + Math.max( document.body["scroll" + name], document.body["offset" + name] ) : + + h == undefined ? + ( this.length ? jQuery.css( this[0], n ) : null ) : + this.css( n, h.constructor == String ? h : h + "px" ); }; });