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 检测用户是不是拒绝浏览器定位计算机的请求