Zuweisen von Ereignisrückrufen, die ein Array in Javascript (jQuery) durchlaufen
Ich erstelle eine ungeordnete Liste mit Javascript (mit jQuery). Jedes Listenelement muss einen eigenen Ereignis-Listener für das "Klick" -Ereignis erhalten. Ich habe jedoch Probleme, den richtigen Rückruf an den richtigen Artikel anzuhängen. Ein (gestripptes) Codebeispiel könnte die Dinge ein wenig aufklären:
for(class_id in classes) {
callback = function() { this.selectClass(class_id) };
li_item = jQuery('<li></li>')
.click(callback);
}
Tatsächlich wird in dieser Iteration mehr getan, aber ich dachte nicht, dass dies für die Frage sehr relevant ist. Was auf jeden Fall passiert ist, dass die Rückruffunktion zu sein scheintverwiesen eher, alsgelagert (& kopiert). Endresultat? Wenn ein Benutzer klicktirgendein Von den Listenelementen wird immer die Aktion für das ausgeführtzuletzt class_id
in demclasses
Array, da es die in gespeicherte Funktion verwendetcallback
an diesem bestimmten Punkt.
Ich habe schmutzige Workarounds gefunden (wie das Parsen derhref
Attribut in einem geschlossenena
element), aber ich habe mich gefragt, ob es einen Weg gibt, meine Ziele auf "saubere" Weise zu erreichen. Wenn meine Herangehensweise schrecklich ist, sag es mir bitte, solange du mir sagst warum :-) Danke!