javascript - 单击时禁用右键单击菜单

标签 javascript jquery

我正在尝试使用 php 和 jquery 构建一个扫雷游戏。这意味着我希望用户能够右键单击元素以将区域标记为潜在炸弹或问号。现在我有了右键单击事件并且代码可以正常工作,但是如果我没有发出任何警报,我会得到带有检查元素等的菜单。我尝试输入一些 return false,但它们没有帮助。如何停止右键单击时出现菜单?

$('.overlay').mousedown(function(event) {
switch (event.which) {
    case 1:
        //left click code
        break;
    case 3:
        theID = event.target.id;
        if ($('#'+theID).is(":visible") && $('.bomb_'+theID).css("visibility") == "hidden" 
        && $('.mystery_'+theID).css("visibility") == "hidden"){
            $('#'+theID).css("background", "none");
            $('.bomb_'+theID).css("visibility", "visible");
            alert("x");
        }else if($('.bomb_'+theID).is(":visible")){
            $('.bomb_'+theID).css("visibility", "hidden");
            $('.mystery_'+theID).css("visibility", "visible");
            alert("y");
        }else{
            $('.mystery_'+theID).css("visibility", "hidden");
            $('#'+theID).css("background", "#fff");
            alert("z");
        }
        break;
}
});

已尝试添加 event.preventDefault();在 mousedown 功能下,但这不会改变任何东西。还在案例3下尝试过:。

同样返回false;和 event.stopImmediatePropagation();不工作。

最佳答案

您是否通过上下文菜单事件尝试过此操作?

$(".overlay").on("contextmenu",function(e){
   ....
   e.stopImmediatePropagation();
   e.preventDefault();
   return false;
});

关于javascript - 单击时禁用右键单击菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19082996/

相关文章:

javascript - 在函数之间共享 Javascript 变量

javascript - Android WebView - Javascript 不会触发回调函数

javascript - OneSignal 删除通知

javascript - 从数据库javascript获取数据

javascript - 数据关闭 : How to dismiss bootstrap modal inside function

jQuery 单击时切换按钮可见性

javascript - 表不接受 $.getJSON Javascript 中的任何类

Javascript OR 运算符简写

javascript - browserify/webpackify 目录中的所有文件

javascript - 如何首先隐藏类并仅在 jQuery 悬停时显示?