在d3.js元素上右键单击:如何防止浏览器上下文菜单出现

20

我有一些用d3.js绘制的元素,例如:

 // draw rectangle 
  svg.selectAll(".rect").append("rect")
        .attr("y", 10)
        .attr("x", 10)
        .attr("height", 5)
        .attr("width", 5)
        .on("contextmenu", function (d, i) {  
    // react on right-clicking
 });

我的代码运行正常,但同时也会打开浏览器的上下文菜单。我该如何防止这种情况发生?


出于礼貌,如果一个答案解决了你的问题,你应该接受它,就像Brian的回答一样... - IlludiumPu36
谢谢提醒! - onkami
2个回答

45

d3.event.preventDefault();添加到您的函数中。

 // draw rectangle 
  svg.selectAll(".rect").append("rect")
        .attr("y", 10)
        .attr("x", 10)
        .attr("height", 5)
        .attr("width", 5)
        .on("contextmenu", function (d, i) {
            d3.event.preventDefault();
           // react on right-clicking
        });

2
这段代码对我有效。如果我是OP,我会接受这个答案。 - Peter Moore

-3

我理解了并为您提供以下代码,请检查并询问是否需要更多帮助...

// draw rectangle 
  svg.selectAll(".rect").append("rect")
        .attr("y", 10)
        .attr("x", 10)
        .attr("height", 5)
        .attr("width", 5)
        .on("contextmenu", function (d, i) {
            d3.event.preventDefault();
           // react on right-clicking
        });

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