d3“隐藏”属性错误或代码中的错误?

时间:2013-09-01 20:21:55

标签: javascript d3.js

我已经建立了一个网页,可以在1956年和1999年拍摄的蟹状星云的两张照片之间翻转。该页面的效果与我在Chrome和Firefox中预期的一样,但不是IE10。我不确定问题出在IE10而不是我的代码中,因为我不得不破解我的代码才能让它在Chrome和Firefox中运行。

这是在IE10中失败的javascript片段,在Chrome和Firefox中有效:

if(curHelp=="Show Text"){
    curHelp = "Hide Text";
    d3s=d3.selectAll("p");
    d3s.attr("hidden",false);
    d3s[0][0].hidden=false; // d3s.attr("hidden",false) doesn't work.
    d3s[0][1].hidden=false; // It sets  all "hidden" attribute for paragraphs to true.
    d3s[0][2].hidden=false; // I hacked in these 4 lines just to get the page to work.
    d3s[0][3].hidden=false; 
}else{
    curHelp = "Show Text";
    d3s=d3.selectAll("p");
    d3s.attr("hidden",true);  // this works but maybe because it's a bug?
}

“d3s.attr(”hidden“,false)行将所有段落隐藏属性设置为true。

我认为我的代码中存在错误,但我不确定我做错了什么因为.attr函数调用在我打算隐藏段落时按预期工作但在我打算显示它们时失败。

这是我正在处理的page的链接。

1 个答案:

答案 0 :(得分:0)

请改为尝试:

d3.selectAll("p").style("display", "none") 

Visibility是一个CSS属性;应使用.style来设置它而不是.attr