如何防止mouseup事件的click事件

时间:2016-11-09 02:00:55

标签: javascript d3.js

rect事件发生mousedown mouseup click。但是当我点击rect mouseup事件时,会触发https://jsfiddle.net/f0vbc94s/ 有我的代码:

var rect=d3.select(".text").append("rect")
                    .attr("width",1000).attr("height",1000)
          .style("fill","#00ff00");
rect.on("click",function(){
        d3.event.preventDefault
        d3.select(this).style("fill","#000000")
})
.on("mousedown",function(){
        d3.select(this).style("fill","#ff0000")
}).on("mouseup",function(){
        d3.event.preventDefault;
        d3.select(this).style("fill","#00ff00")
})

1 个答案:

答案 0 :(得分:3)

  

您的click事件正在覆盖mouseup事件。当你点击   并将鼠标放在向下的位置,mousedown事件发生火灾   改变了颜色。当您释放鼠标时,mouseup事件被触发,   更改颜色,然后立即触发click事件并更改   颜色。所以你无法识别它。

如果您对click事件发表评论,则可以看到mouseup事件被触发。

试试这个,

var rect=d3.select(".text").append("rect")
                    .attr("width",1000).attr("height",1000)
          .style("fill","#00ff00");
//rect.on("click",function(){
        //d3.event.preventDefault
        //d3.select(this).style("fill","#000000")
//})
rect.on("mousedown",function(){
        d3.select(this).style("fill","#ff0000")
}).on("mouseup",function(){
        d3.event.preventDefault;
        d3.select(this).style("fill","#00ff00")
})