在 update() 转换期间绑定事件

Binding an event during an update() transition

是否可以在转换期间将事件绑定到选择?

例如,假设这是您的更新:

        g3.selectAll(".circles")
          .data(dataFiltered, function(d){ return d['token']})
          .transition().delay(circleDelay).duration(1200)
              .attr('r', pointRadius + "px")
              .attr('stroke', '#fff')
              .attr('stroke-width', 1.5)
              .attr("fill",function(d,i){ return (typeof(d[3]) === 'string') ? colorize(d[3]) : null })
              .style('cursor',"pointer")
              .attr('class',"circles");

它向链抛出错误 .on('mouseover',function mouseoverlogic(){});

enter().update().exit() 模式期间,事件可以绑定到 exit() 之前的现有选择吗?

由于过渡是一种特殊的选择,您不能在过渡中使用所有可用于选择的方法。相反,使用 transition.each() 将处理程序绑定到过渡中的元素。

.transition()
    .each(function () {
        d3.select(this).on('mouseover', function mouseoverlogic() {});
    });