如何在d3.js中禁用右键刷选功能

6

问题是如何防止在按下右键鼠标时触发画刷事件(brushstart,brush和brushend)。换句话说,我希望只有在按下左键或中间鼠标按钮时才能使用d3画刷。我在这里没找到直接的答案,谷歌搜索也没有。

1个回答

7
这是我想到的内容:
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)

在调用刷子功能之前,您需要向“ g”元素添加鼠标按下事件。在搜索如何做到这一点时,我找到了这里显示的“上下文菜单无缩放”示例:http://bl.ocks.org/mbostock/6140181 找到方法后,我很容易做到了我想做的事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接