我有以下代码绑定Alt + b来执行某些操作:
(function(jQuery){
$(document).ready(function() {
$(document).bind('keydown', 'alt+b', function(event) {
// do stuff
event.preventDefault();
});
});
})( jQuery );
在PC上使用Safari浏览器(v5.0.4)时,会触发显示的菜单(书签)。有没有办法防止这种行为?在这种情况下,preventDefault适用于Chrome和Firefox。我也尝试'返回false',但它也不起作用。
注意:似乎我的代码有效,直到我第一次看到菜单。之后,即使菜单被隐藏,Alt + b也会触发书签显示。
答案 0 :(得分:0)
试试这个:
(function(jQuery){
$(document).ready(function() {
$(document).bind('keydown', function(e) {
if(e.keyCode==66){
// do stuff
e.preventDefault();
}
});
});
})( jQuery );
在safari中测试过,它不会触发书签。
答案 1 :(得分:0)
我没有你的Safari版本(我无法测试),但你可以尝试一下http://jsfiddle.net/LnvGR/2/
(function(jQuery){
var keys = {};
$(document).keydown(function (e) {
keys[e.which] = true;
var kValues = '';
for (var i in keys) {
if (!keys.hasOwnProperty(i)) continue;
kValues += i;
}
if (kValues == "1866" || kValues == "6618")
{
e.preventDefault();
return false;
}
});
$(document).keyup(function (e) {
delete keys[e.which];
});
})( jQuery );
读取所有键,然后检查组合并调用preventDefault();