好吧,我正在尝试为Web应用程序创建自定义快捷方式。但我有一点问题(我试图找到一个解决方案,但我只找到了preventDefault
和shortcut.add
,我不太了解第二个问题。
我想知道如何在不调用浏览器快捷方式的情况下使用代码的自定义快捷方式。如果我使用shift key
默认的镜头切换,则不会禁用大写。
var menu_abierto=false;
$(document).on('keypress',function(e){
if(e.which==69 && e.ctrlKey && menu_abierto==false){
$('.btn-1,.btn-2 ,.btn-3').prop('disabled',true);
$('#lista-emergencias').show();
MenuLateralIzq();
listarEmergencias();
menu_abierto=true;
} else if(e.which==69 && e.ctrltKey){
$('.btn-1 ,.btn-2, .btn-3').prop("disabled",false);
$('#lista-emergencias ul li').remove();
$('#lista-emergencias ul hr').remove();
$('#lista-emergencias').hide();
OcultarMenuIzq();
menu_abierto=false;
}
});
答案 0 :(得分:1)
您必须添加e.preventDefault()
以阻止默认浏览器操作,然后执行自定义操作:
if( e.target.tagName.toUpperCase() != 'INPUT' ){
if(e.which==69 && e.ctrlKey && menu_abierto==false){
e.preventDefault();
$('.btn-1,.btn-2 ,.btn-3').prop('disabled',true);
$('#lista-emergencias').show();
MenuLateralIzq();
listarEmergencias();
menu_abierto=true;
} else if(e.which==69 && e.ctrltKey){
e.preventDefault();
$('.btn-1 ,.btn-2, .btn-3').prop("disabled",false);
$('#lista-emergencias ul li').remove();
$('#lista-emergencias ul hr').remove();
$('#lista-emergencias').hide();
OcultarMenuIzq();
menu_abierto=false;
}
}
如果要为输入禁用此功能,请添加if( e.target.tagName.toUpperCase() != 'INPUT' ){
。
说明:
e.target
表示当前所选元素,tagName
获取此元素的类型,输入字段将返回INPUT
,toUpperCase()
只是为了确保{ {1}}返回的字符串处于模式INPUT
,UpperCase
表示如果没有输入,换句话说,如果所选元素不是输入字段,那么您可以用海关替换浏览器快捷方式。
检查SO问题/答案 javascript capture browser shortcuts (ctrl+t/n/w) 。
希望这有帮助。
答案 1 :(得分:0)