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

时间:2013-09-26 17:41:47

标签: javascript angularjs angularjs-directive

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

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

我尝试使用$docuemnt.activeElement,但始终是undefined。但是当我使用$document[0].activeElement时,我得到了当前活动的元素。

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

2 个答案:

答案 0 :(得分:24)

不,$documentdocument的包装版本,它是使用jQlite包装的,jQlite是jQuery的一个小版本,因此$document没有任何名为{activeElement的方法{1}}因为document位于$document内,所以您必须使用

$document[0].activeElement

或者

document.activeElement

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

var $activeElement = angular.element(document.activeElement);
$activeElement.attr('focused', 'yes'); // Example usage

答案 1 :(得分:0)

正如另外一点,您可以使用上述答案:

$document[0].activeElement[0]

那么你实际上是一个活动元素数组,所以你需要使用:

angular.element($document[0].activeElement)[0]

transform.input