我正在使用angularjs编写占位符指令。
在点击处理程序上,我想检查元素和document.activeElement是否相同。
我尝试使用$docuemnt.activeElement
,但始终是undefined
。但是当我使用$document[0].activeElement
时,我得到了当前活动的元素。
$document[0].activeElement
是否是访问当前活动元素的正确方法?或者我做错了什么?
答案 0 :(得分:24)
不,$document
是document
的包装版本,它是使用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