单击时禁用右键单击菜单

时间:2013-09-29 20:35:07

标签: javascript jquery

我正在尝试使用php和jquery构建一个扫雷游戏。这意味着我希望用户能够右键单击元素以将区域标记为潜在炸弹或问号。现在我有正确的点击事件和代码工作,但是如果我不提醒任何我得到菜单与检查元素等我已经尝试投入一些返回虚假但但他们没有帮助。如何在右键单击时停止显示菜单?

$('.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();不工作。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您可能想尝试event.preventDefault();