右键单击是Javascript事件吗?
右键单击是Javascript事件吗?如果是,我该如何使用它?是的-是的右键单击是Javascript事件吗?,javascript,Javascript,右键单击是Javascript事件吗?如果是,我该如何使用它?是的-是的 function doSomething(e) { var rightclick; if (!e) var e = window.event; if (e.which) rightclick = (e.which == 3); else if (e.button) rightclick = (e.button == 2); alert('Rightclick: ' + rightcl
function doSomething(e) {
var rightclick;
if (!e) var e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
alert('Rightclick: ' + rightclick); // true or false
}
没有,但您可以检测“onmousedown”事件中使用的鼠标按钮。。。然后从中确定是否是“右键单击”。是的,这是一个javascript鼠标向下事件。还有一个jQuery也可以这样做正如其他人所提到的,可以检测到鼠标右键。但是,如果您在右键单击菜单打开时正在查找触发事件,则您查找的位置是错误的。右键单击/上下文菜单也可以通过键盘访问(shift+F10或Windows和某些Linux上的上下文菜单键)。在这种情况下,您要查找的事件是
oncontextmenu
:
window.oncontextmenu = function ()
{
showCustomMenu();
return false; // cancel default menu
}
对于鼠标事件本身,浏览器为事件对象设置一个属性,该属性可通过事件处理函数访问:
document.body.onclick = function (e) {
var isRightMB;
e = e || window.event;
if ("which" in e) // Gecko (Firefox), WebKit (Safari/Chrome) & Opera
isRightMB = e.which == 3;
else if ("button" in e) // IE, Opera
isRightMB = e.button == 2;
alert("Right mouse button " + (isRightMB ? "" : " was not") + "clicked!");
}
查看以下jQuery代码:
$("#myId").mousedown(function(ev){
if(ev.which == 3)
{
alert("Right mouse button clicked on element with id myId");
}
});
的值将是:
- 1用于左按钮
- 2用于中间按钮
- 3用于右键
是的,虽然w3c说点击事件可以检测到右键点击,但在普通浏览器中,onClick不是通过右键点击触发的
事实上,右键单击只能触发onMouseDown onMouseUp和oncontext菜单
因此,您可以将“onContextMenu”视为右键单击事件。它是HTML5.0标准。使用jQuery
库处理事件
$(window).on("contextmenu", function(e)
{
alert("Right click");
})
是的,oncontextmenu可能是最好的选择,但请注意,它会在鼠标按下时触发,而单击会在鼠标向上时触发
其他相关的问题是关于双击的问题,这显然是不支持的,除非通过手动定时器检查。您可能希望能够右键双击的一个原因是,如果您需要/希望支持左手鼠标输入(按钮反转)。浏览器实现似乎对我们应该如何使用可用的输入设备做了很多假设。您可以使用事件窗口。oncontextmenu
,例如:
window.oncontextmenu=函数(){
警报('右键单击')
}
请右键点击这里代码>以下代码使用jQuery根据默认的mousedown
和mouseup
事件生成自定义的rightclick
事件。
它考虑了以下几点:
- 鼠标上的触发器
- 仅当之前在同一元素上按下鼠标向下键时触发
- 此代码在JFX Webview中也特别有效(因为在JFX Webview中不会触发
contextmenu
事件)
- 当按下键盘上的contextmenu键时,它不会触发(就像打开
('contextmenu',…)的解决方案一样)
会触发
$(函数()
{//全局右击处理程序-触发自定义事件“右击”
var mousedownements=[];
$(文档).on('mousedown','*',函数(事件)
{
if(event.which==3)
{
mousedownements.推(这个);
}
});
$(文档).on('mouseup','*',函数(事件)
{
if(event.which==3&&mousedownements.indexOf(this)>=0)
{
$(this.trigger('rightclick');
}
});
$(document).on('mouseup',function()
{
mousedownements.length=0;
});
//禁用上下文菜单
$(文档).on('contextmenu',函数(事件)
{
event.preventDefault();
});
});
//用法:
$('#testButton')。在('右键单击')上,函数(事件)
{
警报(“这是右击”);
});
如果要调用函数,请右键单击我,而右键单击事件表示我们可以使用以下命令
<html lang="en" oncontextmenu="func(); return false;">
</html>
<script>
function func(){
alert("Yes");
}
</script>
函数func(){
警惕(“是”);
}
要处理鼠标右键单击,可以使用“oncontextmenu”事件。下面是一个示例:
document.body.oncontextmenu=function(event) {
alert(" Right click! ");
};
按下右键单击时,上面的代码会提醒某些文本。如果不希望显示浏览器的默认菜单,可以添加
返回false;
在函数内容的末尾。
谢谢。完成右键单击的最简单方法是使用
$('classx').on('contextmenu', function (event) {
});
然而这不是跨浏览器解决方案,浏览器在该事件中的表现不同,尤其是firefox和IE。我建议在下面使用跨浏览器解决方案
$('classx').on('mousedown', function (event) {
var keycode = ( event.keyCode ? event.keyCode : event.which );
if (keycode === 3) {
//your right click code goes here
}
});
这是我的工作
if (evt.xa.which == 3)
{
alert("Right mouse clicked");
}
如果要检测鼠标右键单击,则不应使用MouseEvent.which
属性,因为它是非标准的,并且浏览器之间存在很大的不兼容性。(请参阅)您应该改为使用。它返回一个表示给定按钮的数字:
0
:按下主按钮,通常为左侧按钮或未初始化状态
1
:按下辅助按钮,通常是车轮按钮或中间按钮(如果存在)
2
:按下辅助按钮,通常是右按钮
3
:第四个按钮,通常是浏览器后退按钮
4
:第五个按钮,通常是浏览器前进按钮
MouseEvent.button
处理的输入类型多于标准鼠标:
按钮的配置可能与标准不同
“从左到右”布局。配置为左手使用的鼠标可能会
将按钮操作反转。某些定点设备只有一个按钮
按钮,并使用键盘或其他输入机制指示主,
辅助按钮、辅助按钮等。其他按钮可能映射到
不同的功能和按钮值
参考:
这是启动它的最简单方法,它适用于除应用程序Web视图(如(CEF)等)之外的所有浏览器。
我希望我的代码能帮助你,祝你好运
const contentorightclick=document.querySelector(“div#contentorightclick”);
//const contentorightclick=window;//如果要将其添加到整个文档中
contentToRightClick.oncontextmenu=函数(e){
e=(e | | window.event);
e、 预防默认值();
控制台日志(e);
返回错误