繁体   English   中英

如何检测双击画笔对象?

[英]How can I detect double click on brush object?

我正在尝试在d3画笔对象上添加双击事件。 但是我不太确定该怎么做。

我试图在画笔对象中添加.on(“ dblclick”,functionName),如下所示:

MyGroup.append("g")
             .attr("class", "viewWindow")
             .call(viewPort)
             .selectAll("rect")
             .style("fill", "#fff3b7")
             .style("fill-opacity", 0.5)
             .attr("height", miniHeight)
             .attr("id", "viewWindow")
             .on("dblclick", brushExpand);

但是,它不起作用。 双击事件未触发。 如何在画笔对象中添加doubleclik事件?

谢谢。

而不是像这样在#viewWindow上附加doubleclick:

.attr("id", "viewWindow")
.on("dblclick", function() { 
     d3.select("#viewWindow").attr("fill", "red")
 });

似乎双击不起作用,我相信d3会覆盖双击(这就是我们未得到事件的原因) 因此,我正在使用另一种方法来捕获双击。

//declare variable
var click = false;
d3.selectAll("#viewWindow").on("mousedown", function() {
  if(click){//if true then double click
    console.log("double click");
    //do what you want to do in double click
    d3.selectAll("#viewWindow").attr("fill", "red");
    //set flag to false
    click=false;
  } else {
    //timeout to reset the flag after 500 milliseconds of 1st mouse down.
    setTimeout(function(){click=false;}, 500);
  }
  click = !click;
})

在这里工作

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM