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

时间:2015-03-18 00:58:08

标签: d3.js

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

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

        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()之前将事件绑定到现有选择吗?

1 个答案:

答案 0 :(得分:2)

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

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