Javascript d3是否在其他路径下的路径上触发鼠标悬停?

Javascript d3是否在其他路径下的路径上触发鼠标悬停?,javascript,d3.js,mouseover,svg-path,Javascript,D3.js,Mouseover,Svg Path,我有 如您所见,我插入了两条路径 圆圈上有一个鼠标悬停的监听器 现在的问题是,一个路径覆盖了另一个路径和属于它的圆,当悬停在基础圆上时不会触发事件 这里我指的圆圈是: 我画的线和圆是这样的: //draw line let valueline = d3.line() .x(function(d) { return x(d.date); }) .y(function(d) { return ys[count](d.val); }); let chart = chartBody.appe

我有

如您所见,我插入了两条路径

圆圈上有一个鼠标悬停的监听器

现在的问题是,一个
路径
覆盖了另一个路径和属于它的圆,当悬停在基础圆上时不会触发事件

这里我指的圆圈是:

我画的线和圆是这样的:

//draw line
let valueline = d3.line()
  .x(function(d) { return x(d.date); })
  .y(function(d) { return ys[count](d.val); });

let chart = chartBody.append("g")
  .attr("class", `charts chart-${count}`)
  .append("path")
    .attr("class", `line-${count} line`)
    .attr("d", valueline(data.samples));

//get dots for circle values
let node = chartBody.selectAll("dot")
                .data(data.samples)
                .enter()
                .append("g");

//add circle
node.append("circle")
  .attr("class", `circle-${count}`)
  .attr("cx", function(d) {return x(d.date); })
  .attr("cy", function(d) { return ys[count](d.val); })
  .attr("r", 8)
  .on("mouseover", showHideDetails)
  .on("mouseout", showHideDetails);
是否有方法触发基础圆上的事件,或者我是否必须使用
路径
标记以外的其他标记


非常感谢您的帮助。

一种方法是将path和circles元素分别分组

let chartBody = svg.append("g")
  .attr("class", "chart-body")
  .attr("clip-path", "url(#clip)")
  //.call(zoom)

let rect = chartBody.append('svg:rect')
  .attr('id', 'rect')
  .attr('width', width)
  .attr('height', height)
  .attr('fill', 'white');

// create group for path
let chartPathContainer = chartBody.append('g')
    .attr('class', 'chart-path-container');

// create group for circles after path so all circles are not covered by path
let chartCircleContainer = chartBody.append('g')
    .attr('class', 'chart-circle-container');
然后,在绘制路径和点时,使用它们各自的组作为容器,而不是将它们附加到
chartBody

  let chart = chartPathContainer.append("g")
    .attr("class", `charts chart-${count}`)
    .attr("data-axis", count)
    .append("path")
    .attr("class", `line-${count} line`)
    .attr("d", valueline(data.samples))
    .attr("data-axis", count)
    .attr("data-inactive", false);
  //.on("mouseover", showDetails)
  //.on("mouseout", hideDetails);

  //get dots for circle values
  let node = chartCircleContainer.selectAll("dot")
    .data(data.samples)
    .enter()
    .append("g");
只要确保没有相互重叠的圆/点