【问题标题】:Jquery right click, no contextmenu, live and all browserjQuery右键单击,没有上下文菜单,实时和所有浏览器
【发布时间】:2011-01-11 09:23:33
【问题描述】:


我需要一个很好的解决方案来管理具有特殊类(实时)的 div 上的左键和右键单击。
对我来说,代码在每一个新浏览器上都能运行很重要。

希望有人可以帮助我。


我的第一次尝试……//右键不起作用

HTML

<div id="test_one" class="my_class">Click here</div>
<br /><br />
<div id="test_two" class="my_class">Click here</div>

JS

$(document).ready(function test()
{

    $(".my_class").bind("contextmenu",function(e){ return false; });

    $(".my_class").live('click', function(e)
    {
      if(e.button == 0 || e.button == 1)
      {
           alert('L -> '+this.id+'');
      }
      else if(e.button == 2){
           alert('R -> '+this.id+'');
      }
    });


});

示例: http://jsfiddle.net/EWXse/

提前致谢! 彼得

【问题讨论】:

标签: jquery hover live right-click


【解决方案1】:

根据 mousedown 的文档,默认情况下无法检测到鼠标右键:http://api.jquery.com/mousedown/

How to distinguish between left and right mouse click with jQuery 建议您使用 event.which 而不是 event.button,因为 .which 在所有浏览器中都标准化为 1,2,3。

值得一提的是:鼠标右键似乎在 Mac OS X 上的 Google Chrome 中不起作用。

【讨论】:

  • 也许您需要为那台 Mac 添加第二个鼠标按钮? ;p
  • 实际上,我这里的鼠标上有 5 个按钮,除了第一个按钮之外,没有一个按钮出现在简单的警报中(e.which)... :-)
猜你喜欢
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多