Cómo asignar devoluciones de llamada de evento iterando una matriz en javascript (jQuery)

Estoy generando una lista desordenada a través de javascript (usando jQuery). Cada elemento de lista debe recibir su propio detector de eventos para el evento 'clic'. Sin embargo, estoy teniendo problemas para obtener la devolución de llamada correcta adjunta al elemento correcto. Un ejemplo de código (eliminado) puede aclarar un poco las cosas:

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

En realidad, en esta iteración se está produciendo más, pero no pensé que fuera muy relevante para la pregunta. En cualquier caso, lo que está sucediendo es que la función de devolución de llamada parece serreferenciado más bien quealmacenado (y copiado). ¿Resultado final? Cuando un usuario hace clicalguna de los elementos de la lista, siempre ejecutará la acción para elúltimo class_id en elclasses matriz, ya que utiliza la función almacenada encallback en ese punto especifico

Encontré soluciones sucias (como el análisis delhref atributo en un adjuntoa Elemento), pero me preguntaba si hay una manera de lograr mis objetivos de una manera "limpia". Si mi enfoque es horrible, dígalo, siempre que me diga por qué :-) ¡Gracias!

Respuestas a la pregunta(6)

Su respuesta a la pregunta