每当按下 R 或 SPACE 时,我都会触发一个事件,但在输入字段中的时间除外。
具体来说,当我点击div并删除<input id='nameInput' type='text'>
/ onchange
时,我担心动态创建的onblur
。这就是我尝试检查if( !$('#nameInput') )
的原因,但$('#nameInput')
是一个jQuery对象,所以它的布尔值总是true
(因此!$('#nameInput') == false
)。
$(window).bind('keyup',
function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 32 || code == 82){
if( !$('#nameInput') ){
roll();
}
}
}
);
我有一个解决方案,利用在输入字段的onfocus中设置的全局布尔变量,但是我想要一个不需要全局变量的解决方案。
有没有办法确定目前哪个元素有焦点?
答案 0 :(得分:3)
您可以使用document.activeElement
来了解当前具有焦点的元素。
if (!$(document.activeElement).is('input, textarea')) {
roll();
}
您还可以使用:focus
选择器。
if (!$(':focus').is('input, textarea')) {
roll();
}