在禁用浏览器上下文菜单后,如何通过右键单击触发某些操作?
我试过这个...
$(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事件,你可以在事件参数中知道按下了哪个按钮.
你可以在这里试试上面的例子.
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事件,你可以在事件参数中知道按下了哪个按钮.
你可以在这里试试上面的例子.
该函数返回得太早.我在下面的代码中添加了评论:
$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; $('.alert').fadeToggle(); // this line never gets called }); });
尝试return false;
用下一行交换.
只需使用事件处理程序.这样的事情应该有效:
$('.js-my-element').bind('contextmenu', function(e) { e.preventDefault(); alert('The eventhandler will make sure, that the contextmenu dosn't appear.'); });