dojo没有捕获右键单击事件

时间:2016-11-01 05:50:43

标签: javascript dojo

在下面的代码中,右键单击不会被捕获。左键单击工作正常。此代码在dojo文档中给出。有人可以告诉我为什么Right不工作?基本上,当我右键单击元素时,我只是获取浏览器的右键菜单,不会生成控制台消息。

https://dojotoolkit.org/reference-guide/1.10/dojo/mouse.html

on(myNode,'click',function(e) {
        if (mouse.isLeft(e)){
          console.log("left click", e);
        } else if (mouse.isRight(e)){
          console.log("right click",e);
        }
});

2 个答案:

答案 0 :(得分:1)

浏览器右键单击上下文菜单会消耗click事件。如果您使用&mousedown'它将起作用。而不是点击'。关于javascript中的右键单击检测还有很多问题,您可以查看其他方法。例如:Failing to identify right click event in Mozilla Firefox。 dojo / mouse模块主要是通常事件处理的实用程序包装器,因此这些问题中的信息仍然适用。

答案 1 :(得分:1)

使用事件mouse.isRight时无法检测click。相反,您可以使用mousedown,如以下示例所示:

https://jsfiddle.net/xgekrp5e/

require(["dojo/mouse", "dojo/on"], function(mouse, on) {
  on(document, "mousedown", function(evt) {
    if (mouse.isLeft(event)) {
      // handle mouse left click
      alert('MOUSE LEFT');
    } else if (mouse.isRight(event)) {
      // handle mouse right click
      alert('MOUSE RIGHT');
    }
  });
});