当前位置:  开发笔记 > 前端 > 正文

将事件绑定到鼠标右键

如何解决《将事件绑定到鼠标右键》经验,为你挑选了3个好方法。

在禁用浏览器上下文菜单后,如何通过右键单击触发某些操作?

我试过这个...

$(document).ready(function(){
    $(document).bind("contextmenu",function(e){
        $('.alert').fadeToggle();
        return false;
    });
});

CMS.. 102

jQuery中没有内置的oncontextmenu事件处理程序,但你可以这样做:

$(document).ready(function(){ 
  document.oncontextmenu = function() {return false;};

  $(document).mousedown(function(e){ 
    if( e.button == 2 ) { 
      alert('Right mouse button!'); 
      return false; 
    } 
    return true; 
  }); 
});

基本上我取消DOM元素的oncontextmenu事件来禁用浏览器上下文菜单,然后我用jQuery捕获mousedown事件,你可以在事件参数中知道按下了哪个按钮.

你可以在这里试试上面的例子.



1> CMS..:

jQuery中没有内置的oncontextmenu事件处理程序,但你可以这样做:

$(document).ready(function(){ 
  document.oncontextmenu = function() {return false;};

  $(document).mousedown(function(e){ 
    if( e.button == 2 ) { 
      alert('Right mouse button!'); 
      return false; 
    } 
    return true; 
  }); 
});

基本上我取消DOM元素的oncontextmenu事件来禁用浏览器上下文菜单,然后我用jQuery捕获mousedown事件,你可以在事件参数中知道按下了哪个按钮.

你可以在这里试试上面的例子.


`"contextmenu"`现在支持了!
最好使用e.which(而不是e.button),这将为所有浏览器提供相同的值.

2> Bennett McEl..:

该函数返回得太早.我在下面的代码中添加了评论:

$(document).ready(function(){
    $(document).bind("contextmenu",function(e){
        return false;
        $('.alert').fadeToggle(); // this line never gets called
    });
});

尝试return false;用下一行交换.


+1,现在支持绑定`contextmenu`!

3> 小智..:

只需使用事件处理程序.这样的事情应该有效:

$('.js-my-element').bind('contextmenu', function(e) {
     e.preventDefault();
     alert('The eventhandler will make sure, that the contextmenu dosn't appear.');
});

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有