2

有什么方法可以找出是什么使第一个 html 元素(输入、文本区域)获得焦点?

我正在加载一个模态窗口,但似乎找不到将 focus() 强制施加在第一个元素上的 JS 行。

一个解决方案是在加载模态窗口后立即对其进行 blur() ,但我想知道是什么触发了这个焦点。也许一些事件侦听器内嵌在文本区域中?

谢谢你的帮助!

4

1 回答 1

3

可以使用元素上的onFocus事件来分析返回的事件对象

//using jquery 1.8 style binding with 'on'
$('#myelement').on('focus', function( e ){
  console.log( e ); // <--- e is passed to the anonymous function
});

e代码中的 是传递给事件处理程序的事件对象的一个​​实例。

查看Event Object的 jQuery 文档,特别是查看event.target 文档

目标属性可以是为事件注册的元素或它的后代。


注意:有多种方法可以将焦点设置在不包含任何 javascript 调用的元素上。

例如在 html 5 中,您可以使用定义文档的默认焦点autofocus

一些浏览器甚至可能将默认焦点设置为文档上的第一个输入元素,或者使用许多其他 HTML 属性。

Javascript 可能不是您幻像焦点的原因。

于 2013-02-07T19:16:34.423 回答