Jak przypisać wywołania zwrotne zdarzeń iterując tablicę w javascript (jQuery)

Generuję nieuporządkowaną listę za pomocą javascript (za pomocą jQuery). Każdy listitem musi otrzymać własny detektor zdarzeń dla zdarzenia „click”. Jednak mam problem z uzyskaniem właściwego połączenia zwrotnego do właściwego elementu. Próbka (pozbawiona kodu) może trochę rozjaśnić:

for(class_id in classes) {
    callback = function() { this.selectClass(class_id) };
    li_item = jQuery('<li></li>')
                .click(callback);
}

W rzeczywistości w tej iteracji dzieje się więcej, ale nie sądziłem, że jest to bardzo istotne dla pytania. W każdym razie dzieje się tak, że funkcja wywołania zwrotnego wydaje się byćodniesienie zamiastprzechowywane (i skopiowane). Końcowy wynik? Gdy użytkownik klikniekażdy elementów listy zawsze wykona akcję dlaostatni, ubiegły, zeszły class_id wclasses tablica, ponieważ używa funkcji zapisanej wcallback w tym konkretnym punkcie.

Znalazłem brudne obejścia (takie jak parsowaniehref atrybut w załączonyma element), ale zastanawiałem się, czy istnieje sposób na osiągnięcie moich celów w „czysty” sposób. Jeśli moje podejście jest przerażające, powiedz tak, o ile powiesz mi dlaczego :-) Dzięki!

questionAnswers(6)

yourAnswerToTheQuestion