有没有办法让Internet Explorer了解this.style.setProperty?

时间:2011-04-26 20:24:05

标签: javascript d3.js cross-browser

我开始使用优秀的D3.js数据可视化库(http://mbostock.github.com/d3/)。

结果在Firefox和Chrome中运行良好,但在IE中则不然。一个问题似乎是D3的this.style.setProperty和this.style.removeProperty被大量使用,IE无法识别。

我想知道是否有人知道变通方法或垫片或其他一些? (我的JavaScript很差,BTW)。

3 个答案:

答案 0 :(得分:1)

当你想要改变风格时,我一直在使用同样的错误来解决它,你可以使用以下模式来解决它。

element.style("property", "value");

值必须始终一个字符串。否则你会在IE9中得到一个奇怪的字符错误,因为它只能处理字符串。

我用D3JS 3.2.8测试了它。

答案 1 :(得分:0)

.classed('class',true / false)怎么样?它在IE9中运行得非常好:

function mouseOver(d, i) {
    var element = d3.select(this);
    var alreadyHasClass = element.classed('className'); // boolean
    element.classed('cssClass', !alreadyHasClass); // set/remove class
}
顺便说一下,添加/删除元素的类比向“样式”附加信息更快。

答案 2 :(得分:0)

我相信最新版本2.1.3解决了这个问题。看一看。