jQuery 1.6以上
jQuery添加了一个
:focus选择器,因此我们不再需要自己添加它。只需使用
$("..").is(":focus")jQuery 1.5及以下
编辑: 随着时代的变化,我们发现更好的方法来测试焦点,新的最爱是BenAlman的要点:
jQuery.expr[':'].focus = function( elem ) { return elem === document.activeElement && ( elem.type || elem.href );};请注意,
(elem.type || elem.href)已添加测试以过滤掉诸如身体之类的误报。这样,我们确保过滤掉除表单控件和超链接以外的所有元素。
您正在定义一个新的选择器。您可以执行以下操作:
if ($("...").is(":focus")) { ...}要么:
$("input:focus").doStuff();任何jQuery
如果您只想找出哪个元素具有焦点,可以使用
$(document.activeElement)
如果不确定版本是否为1.6或更低,则可以添加
:focus缺少的选择器:
(function ( $ ) { var filters = $.expr[":"]; if ( !filters.focus ) { filters.focus = function( elem ) {return elem === document.activeElement && ( elem.type || elem.href ); }; }})( jQuery );


