检查输入是否已聚焦(空格键正在使用中)

时间:2013-06-09 13:32:32

标签: javascript jquery

我刚遇到这个问题。我正在使用空格键来播放/暂停页面上的一个主要播放器。在做一些测试的时候,我发现如果我输入一个搜索或评论并按空格键,它就会继续播放并暂停播放器,这会让人烦恼。我正在寻找方法来检查输入是否集中,而不是使用空格键进行播放/暂停,否则将其用于播放暂停,但无法找到解决方案。

在逻辑方面,我需要做一些像

这样的事情
if (unicode == 32  "SPACEBAR" && "No input is focused, so spacebar is not used for typing ") {

//Some stuff here

 }

3 个答案:

答案 0 :(得分:2)

您可以尝试使用document.activeElement并检查类型。

例如:

document.activeElement.nodeName === 'INPUT'

所以你的if应该是这样的:

if( unicode == '32' && document.activeElement.nodeName !== 'INPUT' ) {
    // play/pause video
}

答案 1 :(得分:0)

检查document.activeElement

doc

答案 2 :(得分:0)

使用事件目标属性:

$(document).on('keydown', function (e) {
       if(!$(e.target).is('input[type=text]') && unicode === 32) {
           //stuff here
       }
    });