2
問題是如何防止刷事件(brushstart,刷和brushend)被觸發,如果按下鼠標右鍵單擊。換句話說,我想讓d3筆刷只在按下鼠標左鍵或中鍵時才動作。我在這裏也沒有找到對這個問題的直接回答,也沒有通過Google的搜索找到答案。如何禁用d3.js中的右鍵刷選擇
問題是如何防止刷事件(brushstart,刷和brushend)被觸發,如果按下鼠標右鍵單擊。換句話說,我想讓d3筆刷只在按下鼠標左鍵或中鍵時才動作。我在這裏也沒有找到對這個問題的直接回答,也沒有通過Google的搜索找到答案。如何禁用d3.js中的右鍵刷選擇
這是我想出來的:
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在弄清楚後,很容易做到我想要的。