我已经阅读了很多使用 .focus() 的文章,但我无法解决我的问题。 每次元素获得焦点时,我都需要运行警报或 console.log,我需要继续按“tab”并获取焦点元素。
我的问题是选择器本身,我知道如何对已知元素(例如
)执行.focus()
$('.foo').focus(function(){
alert('foo is focused');
});
最佳答案
要实现此目的,您可以使用委托(delegate)事件处理程序。它将监听所有子元素上的 focus
事件。
请注意,此示例正在监听任何表单控件上的事件,但可以修改该选择器以针对您的特定用例所需的内容。
$(document).on('focus', ':input', function() {
console.log(this.id);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="foo" />
<input type="text" id="bar" />
<input type="text" id="fizz" />
<input type="text" id="buzz" />
您也可以使用通配符选择器 (*
) 来实现此目的,但这样做可能会出现性能问题,具体取决于您的 HTML 结构的复杂程度。
关于javascript - 使用 focus() 了解当前聚焦的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59768755/