2015-03-08 252 views
0

在我的代码中,我追加了'rect',但由于某种原因它不显示。 的“矩形”我追加显示出来的DOM为:svg元素不显示

enter image description here

这里是我的d3.js摘录当我将其追加:

var testRect = d3.selectAll(".altIndicator").append("rect") 
    .attr("class", "testRect") 
    .attr("x", -50) 
    .attr("width", 20*x.rangeBand()) 
    .attr("y", -100) 
    .attr("height", 425).style("fill", "black").style("opacity", 1); 

什么可以的原因,它是不显示? 我试着在控制台中交互地运行这个append,它在任何其他地方追加它的时候工作,所以它似乎是一个继承问题。但是,通过明确设置样式,它应该覆盖从元素或CSS继承的样式值。

我的完整代码如下,附录是第298-303行。 任何帮助将不胜感激。

https://gist.github.com/EE2dev/d1c86cc47ad2759d955e

+0

您是否尝试过不同的(正)'x'和'y'值,以防它离屏? – mgold 2015-03-08 18:11:40

+0

@ mgold:是的,它在屏幕上。当我将鼠标悬停在DOM中的元素上时,它所覆盖的区域将突出显示。 – ee2Dev 2015-03-08 18:12:54

回答

2

它包含在一个g(该altIndicator)具有0不透明。

这是正在这里设置:

d3.selectAll(".altIndicator") 
    .each(function (d) { if (selectedItemSet.has(d) && selectedItemSet.get(d).alternativeId != 0) { 
     d3.select(this).style("fill", "white") 
     .style("opacity", 0.5); 
     } 
     else { 
     d3.select(this).style("opacity", 0); 
     } 
    }); 

Code without that line

+0

太好了,非常感谢!事后,似乎很明显...... – ee2Dev 2015-03-08 19:25:36