Javascript 如何通过连接的数据找到d3.js绘图元素?
我有一个d3.js绘图,它由一系列对象组成,例如:Javascript 如何通过连接的数据找到d3.js绘图元素?,javascript,svg,d3.js,Javascript,Svg,D3.js,我有一个d3.js绘图,它由一系列对象组成,例如: svg.selectAll(".circ").data(dataArr) // dataArr is my array of objects .enter().append("circle") .attr("cy", function (d) { return d.y }) .attr("cx", function (d) { return d.x }) .attr
svg.selectAll(".circ").data(dataArr) // dataArr is my array of objects
.enter().append("circle")
.attr("cy", function (d) {
return d.y
})
.attr("cx", function (d) {
return d.x
})
.attr("r", elemSize / 2)
.on("dblclick", function (d, i) {
itemWasClicked(d,i); // function to handle double click
}
在提到的itemWasClicked(d,i)
例程中(其中d
是被单击元素的数据,i
是它在数组中的索引dataArr
),我需要找到被单击的实际SVG元素并更改其颜色
如何通过附加的数据找到d3.js元素?除非必要,否则我不想使用附加/按ID元素搜索。我只会在速度更快或者没有其他方法的情况下这样做。在事件处理程序
中,这是对actioned元素的直接引用
见:
指定的侦听器的调用方式与其他运算符相同
传递当前数据d
和索引i
的函数
将此
上下文作为当前DOM元素
因此,您可以简单地:
.on("dblclick", function (d, i) {
changeColorOf(this);
}
您是否尝试过在click事件处理程序中使用此
?