2016-11-09 136 views
1

mousedown mouseup click事件中有rect事件。但是当我点击矩形MouseUp事件触发dosen`t 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") 
}) 

回答

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") 
}) 
+0

但我需要单击事件做其他事情。如何处理这个? – Fboy

+2

您不能为了同样的目的而改变颜色,使用'mouseup'和'click'事件。你可以做不同的事情。什么是你的实际目的和问题? – Aruna

+0

mouseup可以在不同的位置触发我处理这件事,谢谢 – Fboy