我正在使用 angularjs 编写占位符指令。
在单击处理程序上,我想检查元素和 document.activeElement 是否相同。
我试图使用$docuemnt.activeElement
它,但它总是undefined
. 但是当我使用时,$document[0].activeElement
我得到了当前活动的元素。
是$document[0].activeElement
访问当前活动元素的正确方法吗?还是做错了什么?
我正在使用 angularjs 编写占位符指令。
在单击处理程序上,我想检查元素和 document.activeElement 是否相同。
我试图使用$docuemnt.activeElement
它,但它总是undefined
. 但是当我使用时,$document[0].activeElement
我得到了当前活动的元素。
是$document[0].activeElement
访问当前活动元素的正确方法吗?还是做错了什么?
不,$document
是 的包装版本document
,它是使用 jQlite 包装的,jQlite 是 jQuery 的一个小版本,所以$document
没有调用任何方法,activeElement
因为document
在里面$document
,所以你必须使用
$document[0].activeElement
或者
document.activeElement
您还可以像这样创建一个作为 activeElement 的包装版本的全局变量。
var $activeElement = angular.element(document.activeElement);
$activeElement.attr('focused', 'yes'); // Example usage
正如附加说明一样,您将上述答案用于:
$document[0].activeElement
那么你实际上是一个活动元素数组,所以你需要使用:
$document[0].activeElement[0]
或者
angular.element($document[0].activeElement)[0]