右击是Javascript事件吗?如果是,我该如何使用它?


当前回答

大多数使用mouseup或上下文菜单事件的给定解决方案在每次鼠标右键上升时触发,但它们不会检查鼠标右键之前是否下降。


如果您正在寻找一个真正的右键单击事件,该事件仅在同一元素中按下并释放鼠标按钮时触发,那么您应该使用auxclick事件。由于这将触发每个非主鼠标按钮,您还应该通过检查按钮属性过滤其他事件。

窗口。addEventListener("auxclick", (event) => { 如果事件。button === 2) alert("Right click"); });

你也可以通过在JavaScript开头添加以下代码来创建自己的右键事件:

{
  const rightClickEvent = new CustomEvent('rightclick', { bubbles: true });
  window.addEventListener("auxclick", (event) => {
    if (event.button === 2) {
      event.target.dispatchEvent(rightClickEvent);
    }
  });
}

然后你可以通过addEventListener方法监听右键事件,如下所示:

your_element.addEventListener("rightclick", your_function);

在MDN上阅读更多关于auxclick事件的信息。

其他回答

窗口。Oncontextmenu =函数(e) { e.preventDefault () alert(右键) } <h1>请右键点击这里!< / h1 >

是的,oncontextmenu可能是最好的选择,但请注意,它在鼠标向下时触发,而单击将在鼠标向上时触发。

其他相关的问题是关于双击右键的——显然除了手动计时器检查外,不支持双击右键。您可能希望能够右双击的一个原因是,如果您需要/想要支持左手鼠标输入(按钮反转)。浏览器实现似乎对我们应该如何使用可用的输入设备做了很多假设。

使用jQuery库处理事件

$(window).on("contextmenu", function(e)
{
   alert("Right click");
})

看看下面的jQuery代码:

$("#myId").mousedown(function(ev){
      if(ev.which == 3)
      {
            alert("Right mouse button clicked on element with id myId");
      }
});

的值为:

1为左键 2为中间按钮 3为右键

大多数使用mouseup或上下文菜单事件的给定解决方案在每次鼠标右键上升时触发,但它们不会检查鼠标右键之前是否下降。


如果您正在寻找一个真正的右键单击事件,该事件仅在同一元素中按下并释放鼠标按钮时触发,那么您应该使用auxclick事件。由于这将触发每个非主鼠标按钮,您还应该通过检查按钮属性过滤其他事件。

窗口。addEventListener("auxclick", (event) => { 如果事件。button === 2) alert("Right click"); });

你也可以通过在JavaScript开头添加以下代码来创建自己的右键事件:

{
  const rightClickEvent = new CustomEvent('rightclick', { bubbles: true });
  window.addEventListener("auxclick", (event) => {
    if (event.button === 2) {
      event.target.dispatchEvent(rightClickEvent);
    }
  });
}

然后你可以通过addEventListener方法监听右键事件,如下所示:

your_element.addEventListener("rightclick", your_function);

在MDN上阅读更多关于auxclick事件的信息。