如何在d3中使用拖动行为和dblclick事件?

时间:2015-07-23 19:54:28

标签: d3.js

我一直在尝试这么多个小时而无法让它发挥作用。我有一个d3元素可以使用拖动行为拖动,我想添加一个dblclick事件,所以它在双击时执行一个动作。我无法获得dblclick事件。我已经研究了很多方法试图阻止在阻力内传播,并改变事件声明的顺序,到目前为止没有成功。我的代码就像:

switch = box.append('rect')
    .data([{x: point.x, y: point.y}])
    .attr('transform', function (d) { return 'translate(' + d.x + ',' + d.y + ')'; })
    .attr('height', 8)
    .attr('width', 8)
    .attr('stroke', color)
    .attr('fill', color)
    .on('dblclick', function () {
      d3.event.stopPropagation();
      alert('Hello');  // Doesn't enter
    }, true).call(d3.behavior.drag().on('dragstart', function () {
      d3.event.sourceEvent.stopPropagation();
    }).on('drag', function (d) {
      d.x += d3.event.dx;
      d.y += d3.event.dy;
      d3.select(this).attr('transform', 'translate(' + d.x + ',' + d.y + ')');
    }).on('dragend', function (d) {
    }));

注意on('dblclick',...,true)声明后的“true”。我试图阻止传播。

感谢任何帮助。

0 个答案:

没有答案