Ich versuche, eine externe Funktion beim Klicken auf ein DOM-Element auszuführen, ohne es in eine andere Funktion zu integrieren.Wie kann ich eine externe Funktion ausführen, wenn auf ein Element geklickt wird?
Sagen wir, ich habe eine Funktion sayHello()
genannt, wie folgt:
function sayHello(){
alert("hello");
};
es auf Klick ausführen zu können, muss ich dies derzeit tun:
$("#myelement").click(function(){
sayHello();
});
Hinweis ich die einzige einzuwickeln bin gezwungen Funktionsaufruf in noch einer anderen Funktion. Was ich versuche zu tun, so etwas wie diese
$("#myelement").click(sayHello());
Abgesehen davon, dass einfach nicht funktioniert. Kann ich vermeiden, den einzelnen Funktionsaufruf in irgendeiner anderen Funktion zu verpacken? Danke!
.
Zusätzliche Informationen: Wie würde ich dasselbe erreichen, wenn ich Parameter an die Funktion übergeben muss?
..
Zusätzliche Informationen: Wie Chris Brandsma und Jani Hartikainen wies darauf hin, sollte man in der Lage sein, die bind-Funktion verwenden Parameter an die Funktion übergeben, ohne sie in eine andere anonyme Funktion als solche Verpackung:
$("#myelement").bind("click", "john", sayHello);
mit sayHello()
nun einen neuen Parameter, die als solche zu akzeptieren:
function sayHello(name){
alert("Hello, "+name);
}
Das scheint leider nicht zu funktionieren ... Irgendwelche Ideen? Die Dokumentation zu Events/bind befindet sich here Vielen Dank!
Was ist Ihr Rindfleisch mit Verpackungsfunktionen? Es ist kein Performance-Hit (naja, Nanosekunden vielleicht). Es ist ein wenig wortreich, aber ich finde es nützlich, dies zu tun und alles konsistent zu halten. Die zweite, die Sie einen Parameter hinzufügen oder mehr als eine Funktion aufrufen müssen Sie die Wrapper zurück in hinzufügen ... – DisgruntledGoat
Ich denke, ich will es nur schön in einer Zeile haben, und ich bin OCD so ... :) –