Angularjs $ document [0] .activeElement而不是$ document.activeElement

Ani*_*n J 13 javascript angularjs angularjs-directive

我正在使用angularjs编写占位符指令.

在单击处理程序上,我想检查元素和document.activeElement是否相同.

我试图用$docuemnt.activeElement它,但它总是undefined.但是当我使用时,$document[0].activeElement我正在获得当前活跃的元素.

$document[0].activeElement访问当前活动元素的正确方法吗?或者我做错了什么?

iCo*_*nor 25

不,$document是一个包装版本document,它是使用jQlite 包装的,这是jQuery的一个小版本,所以$document没有任何方法调用activeElement因为document在里面$document,所以你必须使用

$document[0].activeElement
Run Code Online (Sandbox Code Playgroud)

要么

document.activeElement
Run Code Online (Sandbox Code Playgroud)

您还可以创建一个全局变量,它是activeElement的包装版本,如此.

var $activeElement = angular.element(document.activeElement);
$activeElement.attr('focused', 'yes'); // Example usage
Run Code Online (Sandbox Code Playgroud)

  • 如果感觉很奇怪,那么只需使用`document.activeElement` (2认同)