D3.js 将拖放和单击事件冲突添加到d3中的元素?

D3.js 将拖放和单击事件冲突添加到d3中的元素?,d3.js,D3.js,拖放事件将添加到d3处的元素中。第一次单击需要单击两次以触发单击事件。删除添加的拖动事件时,单击一次以触发单击事件 d3.select('#points').append('use') .attr('id', 'red_'+thisId) .attr('class', 'point-create') .attr('xlink:href','#point') .on('click',showTipArrow) .call(d3.drag(

拖放事件将添加到d3处的元素中。第一次单击需要单击两次以触发单击事件。删除添加的拖动事件时,单击一次以触发单击事件

d3.select('#points').append('use')
      .attr('id', 'red_'+thisId)
      .attr('class', 'point-create')
      .attr('xlink:href','#point')
      .on('click',showTipArrow)
      .call(d3.drag()
          .on('start', dragstarted)
          .on('drag', dragged)
          .on('end', dragended));

function showTipArrow(){
console.log('6666');}

问题是,当您第一次单击(mousedown)时,拖动事件开始,但只有在您(mouseup)之后,单击事件才会加载。但是,由于拖动事件已经开始,单击将被抑制

使用d3.event.defaultPrevented控制事件:

function showTipArrow(){
if (d3.event.defaultPrevented) return;
console.log('6666');}

查看此

中的react环境是否异常,Html页面内部是否正常。