2013-09-26 24 views
12

私はanglejsを使ってプレースホルダーディレクティブを書いています。

clickハンドラで、elementとdocument.activeElementが同じかどうかをチェックしたいと思います。

私は$docuemnt.activeElementを使用しようとしましたが、常にundefinedでした。しかし、私が$document[0].activeElementを使用したとき、私は現在アクティブな要素を取得しています。

$document[0].activeElementは、現在アクティブな要素にアクセスする正しい方法ですか?または何か間違っている?

答えて

21

いや、$documentので$documentが内側$documentあるactiveElementdocumentので、任意のメソッドが呼び出されていない、それはjQueryのの小さなバージョンであるjQliteを使用してラップされている、documentのラップバージョンである、だから、使用する必要があります

$document[0].activeElement 

それとも

document.activeElement 

また、そのようなactiveElementのラップバージョンでグローバル変数を作成することができます。追加のノートはあなたが上記の答えを使用しているのと同じように

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

あなたは正しい方法で使用していると言いますか?私のために変だと思う。 –

+2

気分が悪い場合は 'document.activeElement'を使用してください – iConnor

0

$document[0].activeElement

あなたが使用する必要があるので、次にあなたが実際にアクティブな要素の配列です:

$document[0].activeElement[0]

または

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

関連する問題