Para tener un poco de fondo, tengo varias casillas de verificación, cada una ponderada con un "puntaje" diferente. Cuando se cambia la casilla de verificación, necesito calcular el puntaje. Pensé que algo así podría funcionar, pero no parece que el evento .change se vincule correctamente.Jquery: Enlace cambiar a casillas de verificación múltiples
$(document).ready(function() {
bindSomeCheckboxes();
});
function bindSomeCheckboxes() {
var score=0;
var checkboxes = {
"id_1" : 3,
"id_2" : 1,
"id_3" : 2,
"id_4" : 5
};
$.each(checkboxes, function(key, value) {
$("#"+key).change(function(key,value) {
if ($("#"+key).is(':checked')) {
//add this ids value to score
} else {
//subtract value from score
}
});
});
}
Sé que es un bucle a través de la matriz correctamente, pero nunca se ve una alerta en .Cambiar.
Cabe ': checked' en lugar de': clicked', ver mi respuesta para más información. – BrunoLM
Parece que a todas las respuestas les falta el hecho de que cada identificación tiene un "puntaje" único. Por eso tengo el mapeo de id -> puntaje. Hice la corrección pulsada -> marcada arriba y cambié los comentarios para mostrar lo que estoy tratando de lograr. Admitiré que podría estar haciendo esto mal. ;) –
Agregué una respuesta que mantiene la estructura básica con la que estaba trabajando. Creo que estabas tratando de hacer referencia a 'clave' dentro del controlador pensando que tendría la ID. El problema fue que le diste a tu controlador su propio parámetro 'key', que en realidad se refiere al objeto' event'. Elimine (o renombre) eso, y tendría la 'clave'. Pero no lo necesita, porque tiene una referencia directa a la ID que necesita porque 'this' hace referencia a la que recibió el evento, por lo que' this.id' es la ID de esa. – user113716