如何在d3.js中右键单击禁用画笔选择

时间:2015-09-03 19:57:11

标签: d3.js mouseevent right-click

问题是如果按下鼠标右键,如何防止刷子事件(brushstart,brush和brushend)被触发。换句话说,我希望d3画笔仅在按下鼠标左键或鼠标中键时才会动作。我既没有在这里找到这个问题的直接答案,也没有通过Google搜索来找到答案。

1 个答案:

答案 0 :(得分:5)

这就是我想出来的:

var brush = d3.svg.brush()
    .x(x)
    .y(y)
    .on("brush", function() {
        //brush code
    })
    .on("brushend", function() {
        //brushend code
    })

    svg.append("g")
        .attr("class", "brush")
        .on("mousedown", function(){
            if(d3.event.button === 2){
                d3.event.stopImmediatePropagation();
            };
        })
        .call(brush)

基本上你需要在调用brush函数之前将鼠标按下事件添加到“g”元素。在搜索如何执行此操作时,我将在此处显示“无法放大上下文菜单”示例:http://bl.ocks.org/mbostock/6140181在计算出来之后,很容易做到我想要的。