javascript - 使用 focus() 了解当前聚焦的元素

标签 javascript jquery

我已经阅读了很多使用 .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/

相关文章:

javascript - 要选择的事件处理程序

php - 如何通过 AJAX 传递值来更改 SQL 搜索查询并将结果返回为 HTML?

jquery - 如何在 onclick 和 windows.resize 上运行命名空间函数

javascript - React Native 中的 setTimeout

javascript - jQuery 在滚动到特定元素时显示特定元素

javascript - PHP While 循环中的 jQuery

javascript - jQuery 引用是如何保存的?

javascript - AJAX 和 HTML 元素不起作用

php - 导出div内容到图片

javascript - 用于查找 html 元素的 CSS 选择器