在下面的代码中,右键单击不会被捕获。左键单击工作正常。此代码在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);
}
});
答案 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');
}
});
});