X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=jquery%2Fjquery.js;h=b7a2799a5ecd4f69b60596eb54e0d33a8f444389;hb=a70ab6564bb469af0a64d43bb0b5c20bc27d83fb;hp=9f35e1a91348d74cf763e97fa17fd2c4bd0212cf;hpb=4b6bcb235fc4ae30692d27910dffbf79295e36f4;p=jquery.git diff --git a/jquery/jquery.js b/jquery/jquery.js index 9f35e1a..b7a2799 100644 --- a/jquery/jquery.js +++ b/jquery/jquery.js @@ -320,12 +320,18 @@ function $(a,c) { (function(){ var b = navigator.userAgent.toLowerCase(); + + // Figure out what browser is being used $.browser = - ( /safari/.test(b) && "safari" ) || + ( /webkit/.test(b) && "safari" ) || ( /opera/.test(b) && "opera" ) || ( /msie/.test(b) && "msie" ) || ( !/compatible/.test(b) && "mozilla" ) || "other"; + + // Check to see if the W3C box model is being used + $.boxModel = ( $.browser != "msie" || + document.compatMode == "CSS1Compat" ); })(); $.apply = function(o,f,a) { @@ -347,24 +353,34 @@ $.apply = function(o,f,a) { $.getCSS = function(e,p) { // Adapted from Prototype 1.4.0 if ( p == 'height' || p == 'width' ) { - if ($.getCSS(e,"display") != 'none') { - return p == 'height' ? - e.offsetHeight || parseInt(e.style.height,10) : - e.offsetWidth || parseInt(e.style.width,10); + var ph = $.browser == "msie" ? 0 : + parseInt($.css(e,"paddingTop")) + parseInt($.css(e,"paddingBottom")); + var pw = $.browser == "msie" ? 0 : + parseInt($.css(e,"paddingLeft")) + parseInt($.css(e,"paddingRight")); + + var oHeight, oWidth; + + if ($.css(e,"display") != 'none') { + oHeight = e.offsetHeight || parseInt(e.style.height,10); + oWidth = e.offsetWidth || parseInt(e.style.width,10); + } else { + var els = e.style; + var ov = els.visibility; + var op = els.position; + var od = els.display; + els.visibility = 'hidden'; + els.position = 'absolute'; + els.display = ''; + oHeight = e.clientHeight || parseInt(e.style.height,10); + oWidth = e.clientWidth || parseInt(e.style.width,10); + els.display = od; + els.position = op; + els.visibility = ov; } - var els = e.style; - var ov = els.visibility; - var op = els.position; - var od = els.display; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = ''; - var oHeight = e.clientHeight || parseInt(e.style.height,10); - var oWidth = e.clientWidth || parseInt(e.style.width,10); - els.display = od; - els.position = op; - els.visibility = ov; - return p == 'height' ? oHeight : oWidth; + + return p == 'height' ? + (oHeight - ph < 0 ? 0 : oHeight - ph) : + (oWidth - pw < 0 ? 0 : oWidth - pw); } if (e.style[p]) { @@ -387,8 +403,15 @@ $.clean = function(a) { var r = []; for ( var i = 0; i < a.length; i++ ) { if ( a[i].constructor == String ) { + if ( a[i].indexOf(""; + } var div = document.createElement("div"); div.innerHTML = a[i]; + if ( tr ) { + div = div.firstChild.firstChild; + } for ( var j = 0; j < div.childNodes.length; j++ ) { r[r.length] = div.childNodes[j]; } @@ -406,7 +429,7 @@ $.clean = function(a) { $.g = { '': "m[2] == '*' || a.nodeName.toUpperCase() == m[2].toUpperCase()", - '#': "a.attributes['id'].nodeValue == m[2]", + '#': "a.getAttribute('id') && a.getAttribute('id').nodeValue == m[2]", ':': { lt: "i < m[3]-0", gt: "i > m[3]-0", @@ -569,7 +592,7 @@ $.Select = function( t, context ) { }; $.tag = function(a,b){ - return a && typeof a.getElementsByTagName != "undefined" ? + return a && typeof a.getElementsByTagName != 'undefined' ? a.getElementsByTagName( b ) : []; }; @@ -579,7 +602,8 @@ $.attr = function(o,a,v){ 'for': 'htmlFor', 'text': 'cssText', 'class': 'className', - 'float': 'cssFloat' + 'float': 'cssFloat', + 'style': 'cssText' }; a = (fix[a] && fix[a].replace && fix[a]) || a; var r = new RegExp("-([a-z])","ig"); @@ -785,7 +809,7 @@ $.event.remove = function(element, type, handler) { }; $.event.trigger = function(element,type,data) { - data = data || [{ type: type }]; + data = data || [ $.event.fix({ type: type }) ]; if ( element && element["on" + type] ) { $.apply( element, element["on" + type], data ); }