Übergeben von Daten an eine jQuery event-handler
Szenario
In einer GUI, ein Benutzer fügt text in ein Texteingabefeld und anschließend auf eine Schaltfläche klickt: eingefügte text erscheint in einem div.
Fand ich dann eine trivial-Lösung (demo hier), dass ist die Einstellung der Ausgabe von text innerhalb der handler-Zugriff auf das input-element-Objekt. Es saugt.
Vielmehr würde ich-pass-die Eingabe von text (nicht das element) an die Prozedur übergeben.
Frage
Wie kann ich Parameter übergeben (die Eingabe-Nachricht in diesem Fall text), um die handler-Funktion?
- Sie müssen Zugriff auf die input-element in gewisser Weise: Sie haben zu erhalten die Wert der Eingabe, wenn Sie auf die Schaltfläche klicken. Vermeiden Sie möglicherweise zu fest den Verweis auf den input, sondern Sie immer noch zugreifen zu können, müssen Sie es in der handler -
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich veränderte den code in Ihre jsFiddle. In jQuery können Sie Daten übergeben als argument den Zugriff auf
event.data
jQuery Referenz.Unmöglich ist.
Wenn Sie wollen, um den aktuellen Wert des input-Elements dann haben Zugriff auf das UI-element selbst.
Wenn Ihr die Absicht habt zu entkoppeln, den event-handler aus, zu wissen, welche bestimmten element zugegriffen werden soll, das ist leicht getan, indem Sie mit Hilfe von event-Daten, um es zu übergeben an die Prozedur übergeben, z.B.:
und die in der callback -:
Beachten Sie, dass das jQuery-event-Daten soll eine Karte von
key: value
Paare wie oben gezeigt. Die übergabe in ein jQuery-Objekt direkt wie gezeigt in die akzeptierte Antwort könnte leicht brechen.Überprüfen diese - http://api.jquery.com/event.data/
Ihre JS wäre in etwa so (ungetestet):
Dadurch erhalten Sie den aktuellen Wert des input-Elements. Es ist im Grunde immer noch greift auf die input-element, aber es gibt keinen Weg, um zu vermeiden, dass, wenn Sie erwerben möchten, die den aktuellen Wert