2013-09-26 19 views
12

Angularjs kullanarak bir yer tutucu yönergesi yazıyorum.

Tıklatma işleyicisinde, öğenin ve document.activeElement öğesinin aynı olup olmadığını kontrol etmek istiyorum.

Bunun için $docuemnt.activeElement kullanmayı denedim ancak her zaman undefined idi. Ama ben $document[0].activeElement kullandım, şu anda aktif eleman alıyorum.

Geçerli etkin öğeye erişmek için $document[0].activeElement doğru yol mu? Ya da yanlış bir şey yapıyorum?

cevap

21

Hayır, $document böylece $document içeride $document olduğu activeElementdocument çünkü herhangi yöntemi denir yoktur, bu bir jQuery minik versiyonu jQlite kullanılarak sarılır, document bir sarılmış versiyonudur, Yani kullanmak gerekecektir

$document[0].activeElement 

Ya

document.activeElement 

Ayrıca şöyle activeElement bir sarılmış versiyonudur global bir değişken oluşturabilir. Kullanmak gerek Ardından

$document[0].activeElement

aslında aktif unsurların bir dizi vardır: Ek bir not Eğer yukarıdaki cevabı kullanmak olması gibi

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

Yani bunu doğru şekilde kullanıyorum mı söylüyorsunuz? Yine de benim için garip geliyor. –

+2

Eğer garip geliyorsa o zaman sadece 'document.activeElement' kullanın – iConnor

0

$document[0].activeElement[0]

veya

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

İlgili konular