D3.js 将拖放和单击事件冲突添加到d3中的元素?
拖放事件将添加到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.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页面内部是否正常。