stopPropagation()无法在firefox中右键单击

时间:2014-07-25 05:52:16

标签: javascript jquery firefox

我在Firefox中面临一个奇怪的问题。 stopPropagation()不能在我的代码中右键单击firefox,但是如果我在代码之前使用警报或断点它将起作用。它运作顺畅,即safari,chrome,opera我的代码如下:

jquery的

$("#div-login").click(function (e) {
    e.stopPropagation();
});

然后这个

$("#div-login").mousedown(function (e) {
   e.stopPropagation();
});

这也是

    $("#div-login").click(function (e) {
     if(e.button ===2)
       e.stopPropagation();
    });

标记

<div="div-login">
  <fieldset>
         ---markup----
                        </fieldset>
</div>

但上面的代码都不适用于在Firefox中右键单击但是没有问题左键单击

我无法找到问题,请帮助......

3 个答案:

答案 0 :(得分:1)

尝试contextmenu,例如:

$('#div-login').on("contextmenu",function(e){
   e.stopPropagation();
}); 

$('#div-login').on("click",function(e){
   if(e.which == 3) {  //right click
       e.stopPropagation();
   }
}); 

答案 1 :(得分:0)

我认为你需要的是contextmenu事件

$("#div-login").on('contextmenu',function (e) {
    e.stopPropagation();
});

演示:Fiddle

另见:Can't use jquery's click event handler to detect right click

答案 2 :(得分:0)

<强> HTML

<div id="box">
    <div id="div-login"></div>
</div>

<强> 的jQuery

$('#div-login').on('mousedown', function (e) {
    if(e.button == 2 ) e.stopPropagation();
});

$('#box').on('mousedown', function () {
    alert('Right');
});

在FF和Chrome中正常使用

DEMO with stopPropagation()

DEMO without stopPropagation()