繁体   English   中英

右键单击就像在事件上单击鼠标左键

[英]Right click acts like a left click on the event

我有以下代码:

document.getElementById("1").oncontextmenu = function() {
  return false
}

禁用右键单击后显示的小窗口(仅在按钮/图像上)。

在我的代码( https://jsfiddle.net/nnuyguat/ )上,一切正常,除了我右键单击图像时会触发左键单击事件并更改图像,直到我移动鼠标为止。

另一个相关的问题是,如果我在不松开的情况下按下左键单击,然后右键单击(松开右键),它也会改变图像。

我需要防止右键单击更改图像。 它应该作为浏览器的关闭按钮(除了它是另一个图像,并且不会关闭任何东西)。

您可以使用event.button来检查按下了哪个按钮,因为event.button返回一个数字,该数字指示按下了哪个鼠标按钮。

资源

编辑:

if (event.button === 2){
    // run your function
}

那应该是正确的,因为我以前从未使用过。

右键单击事件不会触发左键单击。 它只是激活您的对象。 您的图片显示“点击”,但不准确。 它应该说“活动”。

其次,数字不是有效的ID。 因此,将您的div从id =“ 1”重命名为id =“ one”或类似名称。

最后,尝试使用以下代码,而不是您的代码:

document.getElementById("one").addEventListener('contextmenu', function(ev) {
    ev.preventDefault();
    alert('hello from right click');
    return false;
}, false);

参见https://jsfiddle.net/nnuyguat/3/

右键单击更改图片的问题与您的JavaScript无关,而与CSS相关。 :active CSS伪类在用户激活元素时匹配。 根据规范,这仅应在使用主鼠标按钮激活元素时进行,但似乎大多数浏览器未正确实现规范。 有关信息,请参见此问题

可能的解决方法是放弃:active伪类,并设置一个函数以在单击鼠标左键时显式更改内容。

这是因为oncontextmenu事件。 删除它会起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM