Javascript / jQuery检测输入是不是集中[重复]

Posted

技术标签:

【中文标题】Javascript / jQuery检测输入是不是集中[重复]【英文标题】:Javascript/jQuery detect if input is focused [duplicate]Javascript / jQuery检测输入是否集中[重复] 【发布时间】:2013-07-10 23:48:32 【问题描述】:

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

我有这个 jquery:

$(".status").on("click","textarea",function()
        if ($(this) == "focused") 
            // fire this step
        else
            $(this).focus();
            // fire this step
    

【问题讨论】:

它不是重复的,因为另一个问题专门要求 jquery 解决方案。 我同意。我想知道 OP 是否曾经是基于 jQuery 的... @HermannIngjaldsson 隐含地这样做了,因为提供的代码使用了 jQuery(就像最初发布时一样)。因此它重复的。 【参考方案1】:

使用纯javascript

this === document.activeElement // where 'this' is a dom object

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

$(this).is(':focus');

【讨论】:

我不知道为什么它不起作用..它们都没有..如果它没有集中注意力,它会触发第一步..但它应该触发 else 步骤.. 请注意,如果节点未附加到 dom 或隐藏(例如 display:none;),则使用 'focus()' 设置焦点将不起作用(例如 display:none;) 感谢您没有提供 jQuery 解决方案。特别是因为纯 JS 解决方案也短得多。 提示帽子 @Mathias - 你可能指的是“更短”的一些模糊定义...... @katzenhut ha,是的......不知道我想说什么(早在 2014 年)。我想我的意思是“更短”,不调用一堆库代码?!【参考方案2】:

如果你可以使用 JQuery,那么使用 JQuery :focus selector 就可以了

$(this).is(':focus');

【讨论】:

【参考方案3】:

使用 jQuery 的.is( ":focus" )

$(".status").on("click","textarea",function()
        if ($(this).is( ":focus" )) 
            // fire this step
        else
                    $(this).focus();
            // fire this step
    

【讨论】:

【参考方案4】:

你试过了吗:

$(this).is(':focus');

看看Using jQuery to test if an input has focus 它提供了更多示例

【讨论】:

以上是关于Javascript / jQuery检测输入是不是集中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery / Javascript - 检测 WooCommerce 商店通知 html 是不是可见

使用 javascript/jquery 检测 Asp.Net 表单是不是有效

使用 javascript 或 jQuery 检测用户是不是拒绝浏览器定位计算机的请求

使用 JavaScript 或 jQuery 检测哪个表单输入具有焦点

使用jQuery检测元素是不是可见[重复]

jQuery 或 Javascript 检查图像是不是加载