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

Ask*_*mov 13 javascript d3.js

我绘制了一些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
 });
Run Code Online (Sandbox Code Playgroud)

它工作正常,但也打开浏览器的上下文菜单.我怎么能防止这种情况发生?

Bri*_*ian 31

添加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
        });
Run Code Online (Sandbox Code Playgroud)

  • 这段代码对我有用。如果我是OP我会接受这个答案。 (2认同)