1

我正在尝试用 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下尝试过:。

也返回假;和 event.stopImmediatePropagation(); 不工作。

4

2 回答 2

2

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

$(".overlay").on("contextmenu",function(e){
   ....
   e.stopImmediatePropagation();
   e.preventDefault();
   return false;
});
于 2013-09-29T20:49:02.463 回答
1

你可能想试试event.preventDefault()

于 2013-09-29T20:36:43.057 回答