Binden einer vorhandenen JavaScript-Funktion in jQuery
Lesezeit: 2 Minuten
Jack Mills
Mit jQuery möchte ich eine vorhandene Funktion an eine Schaltfläche binden. Ich habe die Dokumentation durchgesehen und die gefunden bind -Methode, aber die Beispiele auf der jQuery-Site binden neu erstellte Funktionen, wo ich eine bereits definierte Funktion binden möchte, z.
function fHardCodedFunction(){
//Do stuff
}
function fBindFunctionToElement(){
$("#MyButton").bind("click", fHardCodedFunction());
}
Ist das möglich? Oder gehe ich das falsch an?
Hier ist der zugehörige Abschnitt aus der jQuery-API-Dokumentation: Mehrfachauswahl
– informatik01
17. Januar 2018 um 17:20 Uhr
Die Ebene fHardCodedFunction bezieht sich bereits auf die Funktion und das Suffix () werde es einfach anrufen. Übergeben Sie also einfach die Funktion, anstatt sie aufzurufen und damit nur den Rückgabewert zu übergeben:
function fBindFunctionToElement(){
$("#MyButton").bind("click", fHardCodedFunction);
}
@Jack Mills: Dann müssen Sie eine (anonyme) Wrapping-Funktion wie verwenden function() { return fHardCodedFunction("foo","bar"); } an die Sie als Callback-Funktion übergeben bind.
– Gumbo
5. September 2009 um 19:11 Uhr
Das ist fast das, was ich versuche (ich verwende stattdessen .click(), aber soweit ich das beurteilen kann, ist es dasselbe). Meine gebundene Funktion funktioniert jedoch nicht – hat die gebundene Funktion Zugriff auf dieselben Variablen wie die click()-Funktion? Oder vielleicht bei der Verwendung der Syntax $("#mydiv").click(function(){ $("#mydiv").hide();}werden versteckte Variablen an die Funktion übergeben?
– Johannes C
25. Mai 2012 um 14:58 Uhr
Wenn Sie einen Parameter übergeben möchten, können Sie die äußere Funktion innerhalb Ihrer anonymen Funktion aufrufen und die Parameter auf diese Weise übergeben.
– Jack of Blades
22. April 2018 um 21:20 Uhr
David Andrés
In Anlehnung an die anderen Posts können Sie Ihren Event-Handler wie folgt parametrisieren:
Ich verwende hier apply, weil es in Funktion ist fHardCodedFunction Ich möchte die this Eigenschaft, auf die zu verweisen MyButton Element. Beachten Sie auch, dass apply ein Array für den zweiten Parameter erwartet, weshalb ich es umgebrochen habe someValue in Klammern.
Sie müssen es nicht so machen und können es vergessen this Eigentum zusammen, wenn Sie es vorziehen.
Ja, Sie können Methoden binden, die woanders geschrieben wurden, aber Sie sollten die Klammern ignorieren:
function fHardCodedFunction(){
//Do stuff
}
function fBindFunctionToElement(){
$("#MyButton").bind("click", fHardCodedFunction);
}
10995100cookie-checkBinden einer vorhandenen JavaScript-Funktion in jQueryyes
Hier ist der zugehörige Abschnitt aus der jQuery-API-Dokumentation: Mehrfachauswahl
– informatik01
17. Januar 2018 um 17:20 Uhr