【发布时间】:2015-09-03 19:57:10
【问题描述】:
问题是如果按下鼠标右键,我如何防止画笔事件(brushstart、brush 和brushend)触发。换句话说,我希望 d3 笔刷仅在按下鼠标左键或鼠标中键时才起作用。我在这里和谷歌搜索都没有找到这个问题的直接答案。
【问题讨论】:
标签: d3.js mouseevent right-click
问题是如果按下鼠标右键,我如何防止画笔事件(brushstart、brush 和brushend)触发。换句话说,我希望 d3 笔刷仅在按下鼠标左键或鼠标中键时才起作用。我在这里和谷歌搜索都没有找到这个问题的直接答案。
【问题讨论】:
标签: d3.js mouseevent right-click
这是我想出的:
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 在弄清楚之后,很容易做我想做的事。
【讨论】: