* @desc Creates a div element (and all of its contents) dynamically, \r
* and appends it to the element with the ID of body. Internally, an\r
* element is created and it's innerHTML property set to the given markup.\r
- * It is therefore both quite flexible and limited.
+ * It is therefore both quite flexible and limited. \r
*\r
* @name $\r
* @param String expr An expression to search with, or a string of HTML to create on the fly.\r
o.className += ( o.className ? " " : "" ) + c;\r
},\r
remove: function(o,c){\r
- /*\r
- o.className = !c ? "" :\r
- o.className.replace(\r
- new RegExp("(^|\\s*\\b[^-])"+c+"($|\\b(?=[^-]))", "g"), "");*/\r
if( !c ) {\r
o.className = "";\r
} else {\r
});\r
\r
return p == "height" ? oHeight : oWidth;\r
- } else if ( p == "opacity" && jQuery.browser.msie )\r
- return parseFloat( jQuery.curCSS(e,"filter").replace(/[^0-9.]/,"") ) || 1;\r
+ }\r
\r
return jQuery.curCSS( e, p );\r
},\r
\r
curCSS: function(elem, prop, force) {\r
var ret;\r
+ \r
+ if (prop == 'opacity' && jQuery.browser.msie)\r
+ return jQuery.attr(elem.style, 'opacity');\r
\r
if (!force && elem.style[prop]) {\r
\r
var r = [];\r
for ( var i = 0; i < a.length; i++ ) {\r
if ( a[i].constructor == String ) {\r
-\r
+ // trim whitespace, otherwise indexOf won't work as expected\r
+ a[i] = jQuery.trim(a[i]);\r
+ \r
var table = "";\r
\r
if ( !a[i].indexOf("<thead") || !a[i].indexOf("<tbody") ) {\r
enabled: "!a.disabled",\r
disabled: "a.disabled",\r
checked: "a.checked",\r
- selected: "a.selected",\r
+ selected: "a.selected || jQuery.attr(a, 'selected')",\r
\r
// Form elements\r
text: "a.type=='text'",\r
disabled: "disabled",\r
checked: "checked"\r
};\r
+ \r
+ // IE actually uses filters for opacity ... elem is actually elem.style\r
+ if (name == "opacity" && jQuery.browser.msie && value != undefined) {\r
+ // IE has trouble with opacity if it does not have layout\r
+ // Would prefer to check element.hasLayout first but don't have access to the element here\r
+ elem['zoom'] = 1; \r
+ if (value == 1) // Remove filter to avoid more IE weirdness\r
+ return elem["filter"] = elem["filter"].replace(/alpha\([^\)]*\)/gi,"");\r
+ else\r
+ return elem["filter"] = elem["filter"].replace(/alpha\([^\)]*\)/gi,"") + "alpha(opacity=" + value * 100 + ")";\r
+ } else if (name == "opacity" && jQuery.browser.msie) {\r
+ return elem["filter"] ? parseFloat( elem["filter"].match(/alpha\(opacity=(.*)\)/)[1] )/100 : 1;\r
+ }\r
+ \r
+ // Mozilla doesn't play well with opacity 1\r
+ if (name == "opacity" && jQuery.browser.mozilla && value == 1) value = 0.9999;\r
\r
if ( fix[name] ) {\r
if ( value != undefined ) elem[fix[name]] = value;\r
return elem[fix[name]];\r
- } else if( value == undefined && $.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == 'FORM' && (name == 'action' || name == 'method') ) {\r
+ } else if( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == 'FORM' && (name == 'action' || name == 'method') ) {\r
return elem.getAttributeNode(name).nodeValue;\r
} else if ( elem.getAttribute != undefined ) {\r
if ( value != undefined ) elem.setAttribute( name, value );\r