0

我在IE6中使用prototype和setStyle只是搞乱了一切。这是一个很大的错误。原型setStyle在IE6中不工作

我已经谷歌搜索,但无法找到解决方案。

我已经确定了与IE脚本调试器原型行了,这是最后的else块:

setStyle: function(element, styles) { 
    element = $(element); 
    var elementStyle = element.style, match; 
    if (Object.isString(styles)) { 
     element.style.cssText += ';' + styles; 
     return styles.include('opacity') ? 
     element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; 
    } 
    for (var property in styles) 
     if (property == 'opacity') element.setOpacity(styles[property]); 
     else 
     elementStyle[(property == 'float' || property == 'cssFloat') ? 
      (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : 
      property] = styles[property]; 

    return element; 
    }, 

没有人有这个问题?

P.S.通常我会使用jQuery,但这是我不得不更新的其他代码。

+1

(A)什么是“大错误” (B)你想要设定什么风格,以及什么价值? – Pointy 2010-03-15 12:25:59

回答

0

我刚刚遇到了这个问题我自己...如果你使用IE调试器,找到选项来显示堆栈并备份,直到你进入你自己的代码。可能的罪魁祸首是虚假的风格。在我来说,我有一个复制/粘贴问题,并试图做到这一点:

msgDiv.setStyle({ padding: '6px', margin: 'margin' }); 

此行

msgDiv.setStyle({ padding: '6px', margin: '4px' }); 

完美地工作......