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")
})
答案 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")
})