Ich versuche, eine Funktion mit Parametern mit jQuerys .click aufzurufen, aber ich kann sie nicht zum Laufen bringen.
So soll es funktionieren:
$('.leadtoscore').click(add_event('shot'));
was anruft
function add_event(event) {
blah blah blah }
Es funktioniert, wenn ich keine Parameter wie diese verwende:
$('.leadtoscore').click(add_event);
function add_event() {
blah blah blah }
Aber ich muss in der Lage sein, einen Parameter an meine add_event
Funktion weiterzugeben .
Wie kann ich diese spezielle Sache machen?
Ich weiß, dass ich verwenden kann .click(function() { blah }
, aber ich rufe die add_event
Funktion von mehreren Stellen aus auf und möchte dies auf diese Weise tun.
jquery
function
parameter-passing
Paul Hoffer
quelle
quelle
patricks
Antwort übernommen, was ich für eine großartige Lösung halteAntworten:
Aus Gründen der Gründlichkeit bin ich auf eine andere Lösung gestoßen, die Teil der in Version 1.4.3 des jQuery-Klickereignishandlers eingeführten Funktionalität war .
Sie können eine Datenzuordnung an das Ereignisobjekt übergeben, die von jQuery als erstem Parameter automatisch an die Ereignishandlerfunktion zurückgemeldet wird. Die Datenzuordnung wird
.click()
als erster Parameter an die Funktion übergeben , gefolgt von der Ereignishandlerfunktion.Hier ist ein Code, um zu veranschaulichen, was ich meine:
Ich weiß, dass es für diese Frage spät im Spiel ist, aber die vorherigen Antworten haben mich zu dieser Lösung geführt, also hoffe ich, dass sie irgendwann jemandem hilft!
quelle
var param_obj = {data : {param1: "Hello", param2: "World"}}; cool_function(param_obj);
?Sie müssen eine anonyme Funktion wie diese verwenden:
Sie können es wie im Beispiel aufrufen, nur einen Funktionsnamen ohne Parameter, wie folgt:
Aber die
add_event
Methode wird nicht'shot'
als Parameter erhalten, sondern was auch immerclick
an ihren Rückruf übergeben wird, das ist dasevent
Objekt selbst ... also ist sie in diesem Fall nicht anwendbar , funktioniert aber für viele andere. Wenn Sie Parameter übergeben müssen, verwenden Sie eine anonyme Funktion ... oder verwenden Sie eine andere Option: Verwenden.bind()
und übergeben Sie Daten wie folgt:Und greifen Sie
add_event
wie folgt darauf zu:quelle
click
Handler zuweisen möchten . In der anonymen Methode und den.bind()
obigen Beispielen, die Sie verwenden könnenthis
, bezieht sie sich auf die, auf die.loadtoscore
Sie geklickt haben (wie Sie es erwarten würden). Im letzten Beispiel ist im Innerenadd_event(event)
wahr, verwenden Siethis
oder$(this)
und es wird das sein, was Sie wollen.function(){ add_event('shot', $(this));}
undfunction add_event(event, element){...}
.element
wäre hier ein jQuery-Element (es funktioniertbind()
jedoch, wie Nick erwähnt hat).$(this)
innerhalb der Funktion verwenden, zum Beispiel: jsfiddle.net/tSu5tWenn Sie es so nennen, wie Sie es hatten ...
... Sie müssten
add_event()
eine Funktion zurückgeben, wie ...Die Funktion wird zurückgegeben und als Argument für verwendet
.click()
.quelle
event
Parameter veröffentlicht haben. Ich hätte es aufnehmen sollen. : o)Ich hatte Erfolg mit .on () wie folgt:
Dann erhalten Sie innerhalb der
add_event
Funktion Zugriff auf "Schuss" wie folgt:Siehe die .on () Dokumentation für weitere Informationen, wo sie das folgende Beispiel liefern:
quelle
Ja, das ist ein alter Beitrag. Unabhängig davon kann es jemand nützlich finden. Hier ist eine andere Möglichkeit, Parameter an Ereignishandler zu senden.
quelle
Setzen Sie das JavaScript-Objekt auf onclick element:
Objekt von "diesem" Element abrufen:
quelle
Ich bekomme die einfache Lösung:
Mein Mittelwert ist, dass das Wertereignis
onclick
an das übergeben wirdjavascript function sendData()
Initialisieren auf die Variable , und nehmen Sie von der jquery Event - Handler - Methode.Dies ist da zunächst möglich
sendData(valueid)
der Wert aufgerufen und initialisiert wird. Dann wird nach dem jquery-Ereignis ausgeführt und dieser Wert verwendet.Dies ist die einfache Lösung, und die Lösung für Details finden Sie hier .
quelle