Javascript d3无法读取属性';getPropertyValue';鼠标悬停时的未定义值
尝试在鼠标上方使用回调函数Javascript d3无法读取属性';getPropertyValue';鼠标悬停时的未定义值,javascript,arrays,object,d3.js,Javascript,Arrays,Object,D3.js,尝试在鼠标上方使用回调函数.call(),以更改不透明度。这是一个错误的选择吗?我注意到,如果我更改const mouseOverFunc=d=>d3。选择all(“circle”)甚至const mouseOverFunc=d=>circle这会导致所有的圆圈都出现。如何一次显示一个圆?我知道问题是我不必做组。选择All(“圆圈”)相反,我必须将圆圈附加到组中,就像我使用路径一样,但我不明白的是,对于“cx”:xScale和“cy”:yScale,我需要访问排放量d.year和d.amount
.call()
,以更改不透明度。这是一个错误的选择吗?我注意到,如果我更改const mouseOverFunc=d=>d3。选择all(“circle”)
甚至const mouseOverFunc=d=>circle
这会导致所有的圆圈都出现。如何一次显示一个圆?我知道问题是我不必做组。选择All(“圆圈”)
相反,我必须将圆圈附加到组中,就像我使用路径一样,但我不明白的是,对于“cx”:xScale
和“cy”:yScale
,我需要访问排放量d.year
和d.amount
就像在高科穆卢斯的评论中写的那样,原因是
这个确实有效。如果您使用的是箭头功能,则不能使用d3。请选择(此)
您可以通过两种方式解决问题:
- 使用普通的
函数(){}
- 使用
示例:
circle.on("mouseover", function() {
d3.select(this)
.call(mouseOverFunc);
});
const mouseOverFunc = selection =>
selection
.transition()
.duration(10)
.style("opacity", 1)
.style("fill", "turquoise")
.attr("r", 3);
或
就像在高科穆卢斯的评论中写的那样,原因是这个确实有效。如果您使用的是箭头功能,则不能使用d3。请选择(此)
您可以通过两种方式解决问题:
- 使用普通的
函数(){}
- 使用
示例:
circle.on("mouseover", function() {
d3.select(this)
.call(mouseOverFunc);
});
const mouseOverFunc = selection =>
selection
.transition()
.duration(10)
.style("opacity", 1)
.style("fill", "turquoise")
.attr("r", 3);
或
circle.on("mouseover", (d, i, nodes) =>
d3.select(nodes[i])
.call(mouseOverFunc));
const mouseOverFunc = selection =>
selection
.transition()
.duration(10)
.style("opacity", 1)
.style("fill", "turquoise")
.attr("r", 3);