Wie eine get-Tasten, nicht den Fokus zu übernehmen?
Möchte ich meine (ExtJS) die Schaltflächen der Symbolleiste nicht zu greifen, die den Fokus auf die web-Seite, wenn Sie angeklickt werden, aber zu tun, Ihr "Ding", wobei der Fokus unverändert durch den Klick. Wie mache ich das?
InformationsquelleAutor der Frage Mike Peat | 2009-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass es einen einfachen Weg, das zu tun, was Sie tun wollen, weil es die Standardeinstellung des Browsers Verhalten.
Könnte man natürlich blur() die Taste Los, sobald es angeklickt wird, aber das würde einfach alles deaktivieren. Haben die vorher aktive Objekt den Fokus zurückzugewinnen, müssten Sie die erstellen ein "Gedächtnis" der Art durch hinzufügen eines blur-handler für jedes element, um zu verfolgen, welches element hatte/hat den Fokus verloren Letzte (Speicherung der id des Elements in einer globalen und aktualisieren Sie es, wenn ein element den Fokus verliert).
InformationsquelleAutor der Antwort Alan Plum
Das unterdrücken des Standardverhaltens von
onmousedown
verhindert, dass ein element den Fokus:InformationsquelleAutor der Antwort real4x
Dokument.activeElement speichert das aktuell fokussierte element.
Also auf Ihrer Symbolleiste können Sie fügen Sie ein "mousedown" - handler an diese Funktion :
Versuchen Sie dieses Beispiel :
InformationsquelleAutor der Antwort Alsciende
Da die Symbolleisten-Schaltflächen sind nur gestylt normalen HTML-button-Elemente, dann ist dies eine tatsächliche browser-Verhalten, und Sie sollten zweimal überlegen, bevor Sie es ändern. Aber trotzdem...
Sollten Sie in der Lage sein, um zu verhindern, dass der botton von der Sie den Fokus erhalten, indem Sie einfach wieder
false
aus seineronclick
hf.InformationsquelleAutor der Antwort Rene Saarsoo
Vielleicht sollten Sie versuchen, zu verwenden
stateful
und Zustand zu ändern, Eigenschaften für Formular-Felder oder was auch immer zu bekommen, den Fokus Rücken?InformationsquelleAutor der Antwort Thevs
Ich würde befestigen Sie ein blur-Ereignis-listener auf alle Felder. Dieser listener zu speichern, sollten Sie das Feld, verloren den Fokus, die in eine Globale variable.
Dann alle toolbar-button sollte man den Fokus-Ereignis-listener. Dieser listener sollte der Schwerpunkt der das Feld gespeichert wurde, wie oben beschrieben.
Dieser code sollte funktionieren, obwohl es nicht testen, es
InformationsquelleAutor der Antwort Jochen
Was ich gefunden habe, ist, dass Sie haben, um ein dummy-element, fand ich Tasten funktionieren am besten in dieser situation. setzen Sie den button in ein div und machen die div 0px.
[machen Sie nicht den div display none, manche Browser ignorieren es einfach]
Grundsätzlich keine Klick-oder-Taste drückt, wird der Fokus auf das dummy-button.
Ich hatte ein Projekt sehr ähnlich, und wenn Sie gedrückt die Taste nach unten und wählte die erste Schaltfläche auf der Seite, das nur konzentriert sich auf die-Taste, immer und immer wieder.
Art aufgebockt, aber es funktioniert.
InformationsquelleAutor der Antwort Dillon Burnett
Diese Regel funktioniert der trick für mich:
Vom https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex:
InformationsquelleAutor der Antwort Lukas Bünger