jquerykeypress问题
我有一个按键时重定向的代码:jquerykeypress问题,jquery,keypress,Jquery,Keypress,我有一个按键时重定向的代码: $('body').bind('keyup', function(event) { if(event.keyCode==66){ window.location = "page.php"; } }); 好的,但是,如果用户在页面上有一个焦点输入字段,如何使其不适用?您可以测试event.target并查看它是什么类型的元素。如果是输入,则不做任何操作就返回。具体来说, if (-1 != ['INPUT', 'TEXTAREA'].indexOf(
$('body').bind('keyup', function(event) {
if(event.keyCode==66){ window.location = "page.php"; }
});
好的,但是,如果用户在页面上有一个焦点输入字段,如何使其不适用?您可以测试
event.target
并查看它是什么类型的元素。如果是输入
,则不做任何操作就返回。具体来说,
if (-1 != ['INPUT', 'TEXTAREA'].indexOf(event.target.nodeName)) return;
编辑:嗯,你们确定事件。当前目标?我看到有几个人提到了currentTarget
而不是target
,但不会提到事件。currentTarget
始终是绑定侦听器的主体
元素?试试看
if ( $("*:focus").is("textarea, input") ) return;
或
您可以使用jQuery的选择器
$("input").is(":focus")
这里举一个例子:
if($(event.currentTarget).attr('id')='inputId')返回false代码>我对jqyery不是很在行,但“inputElement”是一个变量吗?如果是这样的话,有没有办法让它覆盖所有的输入字段呢?是的,inputElement是要排除的元素的id。我还修改了我的答案。
$('input').bind('keyup', function(event) {
if(event.keyCode==66 && !($(event.currentTarget).is(":focus"))){ window.location = "page.php"; }
});
$("input").is(":focus")
$('body').bind('keyup', function (event) {
// If 'b' is pressed & no input is focused
if (event.keyCode == 66 && !$("input").is(":focus")) {
alert('Redirecting');
}
});