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!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage