2016-11-04 3 views
0

Ich bin ein Element im DOM wie so konzentriert:Argumente gesendet, wenn ein Element Fokussierung

element.focus(); 

Vermutlich wird ein Fokus-Ereignis unter der Haube Brennen? Kann ich Argumente damit angeben, indem ich eine andere Syntax verwende?

Ich habe Folgendes ohne Erfolg versucht. Ich kann jQuery wenn nötig:

$('.my-selector').trigger({ 
    type: "focus", 
    options: 'argument1', 
}); 

Der Handler mit Winkel ng-focus gebunden ist:

<input type="text" ng-focus="onFocus($event)"/> 

Die Handler-Funktion:

function onFocus(evt) { 
    // I want to be able to distinguish events via state I pass 
} 
+1

"_Vermutet dies ein Fokus-Ereignis unter der Haube? _": Es gibt einige weitere Schritte zu tun, wenn '.focus()' auf einem Element aufgerufen wird: https://www.w3.org/TR /html5/editing.html#dom-focus – Andreas

+0

Die Daten gesendet wo? Wie fängst du die Veranstaltung an? –

+0

Es könnte ein wenig außerhalb des Kontexts sein, aber warum müssen Sie dem Fokusereignis Argumente übergeben? Wenn Sie eine Funktion ausführen möchten, wenn ein Element fokussiert ist, können Sie es nicht in der aufgerufenen Funktion selbst definieren? –

Antwort

1

Wenn jQuery verwenden Sie

$('selector').trigger('event',[param1, param2,...]) 

und fangen die mit

$('selector').on('event', function(e, param1, param2, ..){..} 

(wie erwähnt verwenden können in http://api.jquery.com/trigger/#trigger-event-extraParameters)


Leider wird dies nicht mit der focus Veranstaltung arbeiten, wie in diesem Fehlerbericht dokumentiert: Extra parameters are not passed when triggering focus

(Anmerkung: es funktioniert in 1.8.3 und unten, wie in einem verknüpften/relevanten Fehlerbericht erwähnt: focus event ignores additional data when triggered)

0

Wenn Sie Dokumentation prüfen HTML DOM focus() tut es nicht Unterstützungsparameter

aber jQuery focus() tut Unterstützung function als Parameter, der die Funktion Run auf angibt, wenn der Fokus-Ereignis ausgelöst wird

Verwandte Themen