核心思想是用getComputedStyle获取样式,如果没有获取到就判断是不是动态创建的元素,如果是则用style获取行内样式。
看重点(注释部分)代码吧!
curCSS = function( elem, name ) {
var ret,
computed = window.getComputedStyle( elem, null ),
style = elem.style; if ( computed ) {
//getPropertyValue兼容ie9获取filter:Alpha(opacity=50)
ret = computed.getPropertyValue( name ) || computed[ name ]; //如果是动态创建的元素,则使用style方法获取样式
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
ret = jQuery.style( elem, name );
} .................
} return ret;
};