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

如何在d3.js中右键单击时禁用笔刷选择,d3.js,mouseevent,right-click,D3.js,Mouseevent,Right Click,问题是如果按下鼠标右键单击,如何防止笔刷事件(brushstart、brush和brushend)触发。换句话说,我希望d3笔刷仅在按下鼠标左键或鼠标中键时才起作用。无论是在这里还是通过谷歌搜索,我都没有找到这个问题的直接答案。这就是我想到的: var brush = d3.svg.brush() .x(x) .y(y) .on("brush", function() { //brush code }) .on("brushend", fu

问题是如果按下鼠标右键单击,如何防止笔刷事件(brushstart、brush和brushend)触发。换句话说,我希望d3笔刷仅在按下鼠标左键或鼠标中键时才起作用。无论是在这里还是通过谷歌搜索,我都没有找到这个问题的直接答案。

这就是我想到的:

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”元素中。在搜索如何做到这一点的过程中,我找到了这里显示的“上下文菜单上没有缩放”示例:在弄清楚它之后,我很容易做我想做的事情