return target;
};
-var expando = "jQuery" + (new Date()).getTime(), uuid = 0;
+var expando = "jQuery" + (new Date()).getTime(), uuid = 0, win = {};
jQuery.extend({
noConflict: function(deep) {
cache: {},
data: function( elem, name, data ) {
+ elem = elem == window ? win : elem;
+
var id = elem[ expando ];
// Compute a unique ID for the element
},
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 {
} 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
jQuery.each({
parent: "a.parentNode",
- parents: "jQuery.parents(a)",
+ parents: "jQuery.dir(a,'parentNode')",
next: "jQuery.nth(a,2,'nextSibling')",
prev: "jQuery.nth(a,2,'previousSibling')",
+ nextAll: "jQuery.dir(a,'nextSibling')",
+ 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)"
};
});
-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" );
};
});