2

我正在尝试创建一个带有散点图、网络图和表格的页面。我能够让鼠标处理在网络图和表格上工作(在 Link D3 的 @Superboggly 的帮助下,在鼠标悬停时使用表格强制布局网络图)。现在我试图让鼠标处理在带有散点图的第二个 svg 上工作,我想我搞砸了引用。

var mapit = svg2.selectAll("maprect")
    .data(graph.nodes)
    .enter().append("rect")
    .attr("x", function(d) { return xScale(d.long); })
    .attr("y", function(d) { return yScale(d.lat); })
    .attr("height", 20)
    .attr("width", 20)
    .attr("fill", "cyan")
    // This mouseover doesn't work, what am I missing?
    .on("mouseover", function(d) { 
        d3.select(this).select("rect").style("fill", "orange"); 
        })
    .on("mouseout",  function(d) { 
        d3.select(this).select("rect").style("fill", "cyan"); 
        });

我是 D3 和 JavaScript 的新手,对我从其他人的示例拼凑而成的 ... mapitsvg2maprectgraph.nodes、 ... 的集合感到困惑。rect有什么建议么?

该示例发布为jsFiddle

4

1 回答 1

2

你离得太近了!只需删除.select("rect")函数中的:

.on("mouseover", function(d) { 
    d3.select(this).style("fill", "orange"); 
    })
.on("mouseout",  function(d) { 
    d3.select(this).style("fill", "cyan"); 
    });

更新小提琴

于 2013-05-07T20:20:14.163 回答