Javascript D3js拖动与单击

Javascript D3js拖动与单击,javascript,google-chrome,firefox,d3.js,Javascript,Google Chrome,Firefox,D3.js,我正在为节点编写一个带有拖放和单击功能的d3js树。我遇到了这个例子 但是这个例子与在chrome和firefox上的表现不同。 单击矩形时: 铬输出:OnDrag、OnDragEnd、OnClick Firefox输出:OnClick 当我拖放矩形时: 铬输出:OnDrag,OnDragEnd Firefox输出:OnDrag,OnDragEnd 有没有办法让chrome在点击时表现得和firefox一样 container .call(dragBehavior)

我正在为节点编写一个带有拖放和单击功能的d3js树。我遇到了这个例子

但是这个例子与在chrome和firefox上的表现不同。 单击矩形时:

  • 铬输出:OnDrag、OnDragEnd、OnClick
  • Firefox输出:OnClick
当我拖放矩形时:

  • 铬输出:OnDrag,OnDragEnd
  • Firefox输出:OnDrag,OnDragEnd
有没有办法让chrome在点击时表现得和firefox一样

   container
       .call(dragBehavior)
       .on('click', onClick);


我正在使用Chromium,它就像Firefox一样。如果添加
d3.event.stopPropagation()
flashRect()之后
在onClick中,它能工作吗?@TimB将stopPropagation添加到onClick函数将不起任何作用,因为我需要停止触发onDrag,并且在onClick之前触发onDrag我猜
。on('dragend',onDragStart)
应该是
。on('dragstart',ondragstarg)
   container
       .call(dragBehavior)
       .on('click', onClick);
   container
       .on("mousedown", function() { 
                d3.event.stopPropagation();

                d3.select(this).on("mouseup", onClick);
                d3.select(this).on("mousemove",  function()
                {
                    d3.select(this).call(dragBehavior);
                });
            });