如何在 d3.js 中禁用右键单击画笔选择
How to disable brush selection on right click in d3.js
问题是在按下鼠标右键时如何防止触发画笔事件(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)
基本上你需要在"g"元素上添加鼠标按下事件,然后调用画笔功能。在搜索如何执行此操作时,我找到了此处显示的 "No Zoom on Context Menu" 示例:http://bl.ocks.org/mbostock/6140181 在弄清楚之后,很容易做我想做的事。
问题是在按下鼠标右键时如何防止触发画笔事件(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)
基本上你需要在"g"元素上添加鼠标按下事件,然后调用画笔功能。在搜索如何执行此操作时,我找到了此处显示的 "No Zoom on Context Menu" 示例:http://bl.ocks.org/mbostock/6140181 在弄清楚之后,很容易做我想做的事。