使用 jQuery 测试输入是否具有焦点
使用 jQuery 复制 CSS :hover 行为(除 < 之外的元素)时会出现这种困境;a>在IE6中。
为了解决此问题,可以使用 jQuery 检查表单中的任何输入是否具有焦点。但是,由于 jQuery 缺少 :focus 选择器,因此必须采用替代方法。
jQuery 1.6
对于 jQuery 1.6 及更高版本,可以使用 :focus 选择器。以下代码可用于检查焦点:
$("..").is(":focus")
jQuery 1.5 及以下
对于早期的 jQuery 版本,以下代码可用于定义新选择器并检查焦点:
jQuery.expr[':'].focus = function(elem) { return elem === document.activeElement && (elem.type || elem.href); };
或者,您可以使用以下方法检查哪个元素具有焦点:
$(document.activeElement)
对于所有 jQuery 版本
为了保证与不同 jQuery 版本的兼容性,可以添加 :focus 选择器,如下:
(function ($) { var filters = $.expr[":"]; if (!filters.focus) { filters.focus = function(elem) { return elem === document.activeElement && (elem.type || elem.href); }; } })(jQuery);
通过测试焦点,可以防止输入获得焦点且光标悬停时边框消失进进出出。
以上是如何使用 jQuery 检查输入是否具有焦点?的详细内容。更多信息请关注PHP中文网其他相关文章!