Javascript 如何检测双击笔刷对象?

Javascript 如何检测双击笔刷对象?,javascript,d3.js,Javascript,D3.js,我正在尝试在d3笔刷对象上添加双击事件。 但我不太清楚我该怎么做 我尝试在笔刷对象中添加.on(“dblclick”,functionName),如下所示: MyGroup.append("g") .attr("class", "viewWindow") .call(viewPort) .selectAll("rect") .style("fill", "#fff3b7")

我正在尝试在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
上双击:

.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;
})
工作小提琴


希望这有帮助

你能提供一把小提琴吗?上面的脚本似乎还可以。这里有一把小提琴: