Lazy binding-Funktionen, um mehrere Ereignisse mit jQuery
Hier ist das Szenario: ich habe eine Reihe von Schaltflächen, die ich binden wollen, die entsprechenden Funktionen, wenn geklickt wird. Die ids von diesen Tasten sind die gleichen wie die Namen der entsprechenden Funktionen. Ich konnte dies tun:
$("#kick").click(kick);
$("#push").click(push);
$("#shove").click(shove);
Aber ich bin faul und möchte diese mehr faul (wie meine Natur). Als Tasten sind alle enthalten in ein block-element, ich würde gerne etwas wie das hier tun:
$("#button_holder > span").each(function () {
var doThis = this.id;
$(this).click(doThis);
});
Außer, dass nicht funktioniert. Irgendwelche Vorschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie die anderen Beantworter, ich bin mir nicht sicher, dass dieser ist "wahr" Faulheit (wie in der programmer ' s Tugend), aber nur Sie kennen Ihre Umsetzung details.
Wenn Sie wirklich wollen, etwas zu tun, wie diese, können Sie ein Objekt verwenden, zu speichern, Ihre besonderen Funktionen und verwenden Sie dann die Zeichenfolge zu sehen-bis:
Oder als anonyme Funktionen:
Ich denke, ich sehe nicht den Punkt von diesem. Sie erstellen müssen, der jede Funktion einzeln sowieso, und diese Art der Programmierung ist für andere schwer zu verstehen in der Regel. Vielleicht, wenn Sie haben Dutzende von Tasten und es Wegwerf-code ist, könnte ich verstehen, aber .. wahrscheinlich nicht...
Warum nicht einfach binden Sie alle zu einer einzigen Funktion und Bestimmung auf dieser Basis.id bei event-Zeit??
seine sehr einfach !
Sie versuchen, geben Sie "none" -Funktion, um die click-Methode.
müssen Sie passieren eine Funktion :
});
oder :