Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3无法读取属性';getPropertyValue';鼠标悬停时的未定义值_Javascript_Arrays_Object_D3.js - Fatal编程技术网

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);