我想阻止键#93上的默认事件(选择,在AZERTY键盘上的 alt gr 和 ctrl right 之间)。
此键打开上下文菜单,如右键单击。
我试过了:
$(document).off('keydown');
$(document).off('keyup');
$(document).off('keypress');
$(document).on('keypress', function(e){
if(e.keyCode == 93)
{
e.preventDefault();
return false;
}
});
$(document).on('keyup', function(e){
if(e.keyCode == 93)
{
e.preventDefault();
return false;
}
});
$(document).on('keydown', function(e){
if(e.keyCode == 93)
{
e.preventDefault();
return false;
}
});
没有任何作用......我总是有上下文。
答案 0 :(得分:1)
经过一段时间的检查后,我已经开始讨论与此问题类似的另一个问题,但问题非常不同。
在任何情况下,由于问题是上下文菜单,你甚至不需要jQuery和解决方案(尽管WON&#T; T总是在firefox中工作,因为用户可能会将其设置为禁用这是一个:
document.oncontextmenu = function (e) {
e.preventDefault();
return false;
}
小提琴:
http://jsfiddle.net/0kkm1vq0/3/
也适用于Chrome,您不需要使用键盘监听器。
参考:How to disable right-click context-menu in javascript
(与#93键实际上相同)。
**请注意,这也会禁用右键**。
编辑:
不确定这是否是跨浏览器(下面的UPDATED代码似乎适用于chrome和firefox,虽然没有尝试过IE和其他人),但是关键#97触发的事件似乎已被确定为1,虽然点击似乎被识别为键3,所以你可以只是:
(function($){
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
$(document).on('keyup', function(e) {
e.which == 93 && e.preventDefault();
});
}
else {
document.oncontextmenu = function (e) {
e.which == 1 && e.preventDefault();
}
}
})(jQuery);
http://jsfiddle.net/0kkm1vq0/10/
要禁用键,而不是右键单击。