有什么我可以这样做的吗(也许通过插件)
if ( ! $('form#contact input]').hasFocus()) {
$('form#contact input:first]').focus();
}
基本上,将焦点设置到第一个输入,但前提是用户尚未点击任何内容?
我知道这也行,但还有更优雅的吗?
$(function() {
var focused = false;
$('form#contact input]').focus(function() {
focused = true;
});
setTimeout(function() {
if ( ! focused) {
$('form#contact input:first]').focus();
}
}, 500);
});
最佳答案
没有原生解决方案,但可以通过更优雅的方式实现:
jQuery.extend(jQuery.expr[':'], {
focus: "a == document.activeElement"
});
您正在定义一个新的选择器。参见 Plugins/Authoring .然后你可以这样做:
if ($("...").is(":focus")) {
...
}
或:
$("input:focus").doStuff();
关于javascript - JavaScript(或 jQuery)中是否有 'has focus'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2683742/