Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止鼠标点击事件_Javascript_D3.js - Fatal编程技术网

Javascript 如何防止鼠标点击事件

Javascript 如何防止鼠标点击事件,javascript,d3.js,Javascript,D3.js,mousedown mouseup click上有一个rect事件。但是当我点击rect mouseup事件时不会触发 这是我的代码: var rect=d3.select(".text").append("rect") .attr("width",1000).attr("height",1000) .style("fill","#00ff00"); rect.on("click",function(){ d3.even

mousedown mouseup click上有一个
rect
事件。但是当我点击rect 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")
})
.on("mousedown",function(){
        d3.select(this).style("fill","#ff0000")
}).on("mouseup",function(){
        d3.event.preventDefault;
        d3.select(this).style("fill","#00ff00")
})
您的
单击
事件将覆盖
鼠标悬停
事件。当你点击 并将鼠标保持在向下位置,
mousedown
事件激发并 改变了颜色。释放鼠标时,
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")
})

但我需要点击事件来做其他事情。如何处理?您不能让
mouseup
click
事件用于与更改颜色相同的目的。你可以做不同的事情。你的实际目的和问题是什么?鼠标可以在不同的位置触发我处理这些事情,谢谢