Javascript检测输入是否集中

sou*_*w93 108 javascript jquery

.click如果textarea已经聚焦,我如何检测事件何时触发?

我有这个javascript:

$(".status").on("click","textarea",function(){
        if ($(this) == "focused") {
            // fire this step
        }else{
            $(this).focus();
            // fire this step
    }
Run Code Online (Sandbox Code Playgroud)

Pri*_*orn 284

使用纯javascript:

this === document.activeElement // where 'this' is a dom object
Run Code Online (Sandbox Code Playgroud)

或者使用jquery的:focus伪选择器.

$(this).is(':focus');
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你没有带来jQuery解决方案.特别是因为纯JS解决方案也短得多.*小贴士* (26认同)
  • @katzenhut哈,是的...不确定我想说的是什么(早在2014年).我假设我的意思是"更短",不会调用一堆库代码?! (8认同)
  • @Mathias - 你可能指的是'较短'的一些模糊定义...... (4认同)
  • 请注意,如果节点未附加到dom或被隐藏(例如display:none;),则使用'focus()'设置焦点将不起作用 (3认同)
  • 我不知道为什么它不起作用....没有一个..如果它没有集中它会触发第一步..但它应该触发其他步骤.. (2认同)