2017-01-24 1 views
0

Ich habe die folgenden Zeilen geschrieben Fokus auf ein Eingabeelement in Winkel js hinzuzufügen:Fokus arbeitet nicht in angularJS. angular.element (...). focus ist keine Funktion?

angular.element(document.getElementById("chatinput")).focus(); 

aber eine geben einen Fehler nicht funktioniert:

angular.element(...).focus is not a function 
+0

Können Sie versuchen 'angular.element (document.getElementById ("chatinput") [0]). focus(); '? –

+0

Also was kann ich tun .... gibt es eine andere Option. – lakshay

Antwort

2

Die "jqLite" library, die für angular.element() mit kantigem enthalten ist enthält nicht die .focus() Methode.

Um es verfügbar zu machen, müssen Sie die jQuery-Bibliothek laden, bevor Sie Angular und Ihren Anwendungscode laden. Sobald Sie das getan haben, wird angular.element() ein Alias ​​von jQuery anstelle von jqLite sein.

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="/path/to/angular.js"></script> 

Oder kehrte die Element von getElementById()has its own .focus() method dass Sie angular.element() ohne anrufen:

document.getElementById("chatinput").focus(); 

// though, you may want to check that it's found first 
var chatinput = document.getElementById("chatinput"); 
if (chatinput) chatinput.focus(); 
+0

das funktioniert nicht. Ich habe diese Logik auf meine Sendetaste angewendet, so dass, wenn ich eine Nachricht sende, das Eingabefeld (chatinput) wieder den Fokus erhält und die Tastatur nicht schließt. – lakshay

+0

@lakshay Entschuldigung. Was genau funktioniert nicht? Haben Sie beschrieben, was Sie erwartet haben oder was Sie sehen, wenn Sie es versuchen? Und in jedem Fall, wie ist das Verhalten für den anderen? –

+0

Ich versuche ein Chat-Modul zu erstellen, in dem ich ein Eingabefeld und einen Sende-Button habe. Jedes Mal, wenn ich eine Nachricht sende, wird die Tastatur geschlossen, da das Eingabefeld den Fokus verliert und ich meine Tastatur nicht jedes Mal schließen will sende eine Nachricht, deshalb versuche ich, den Fokus auf mein Eingabefeld zu halten, nachdem ich die Nachricht gesendet habe. – lakshay

Verwandte Themen