Le code suivant ajoute une case à cocher et une étiquette au nœud appelant.
Ma question se trouve dans la fonction label.click. Chaque fois que l'on clique sur l'étiquette, je veux changer l'état de la case correspondante. Qu'est-ce qui se passe cependant, c'est que la case à cocher se termine toujours non cochée. Pour le débogage, je le mets maintenant explicitement à coché. Lorsque je parcours le code avec firebug, je vois que la case à cocher est vérifiée et ensuite, quand on quitte la fonction, elle est à nouveau décochée.Pourquoi la case à cocher est-elle toujours décochée?
Des idées?
jQuery.fn.AddEndOrStartWith = function(selected, id, action) {
var checkBox = $('<input type="checkbox"></input>');
checkBox.attr("id", id + action);
checkBox.addClass(action + "CheckBox");
checkBox.attr("for", id);
var label = $('<label></label>');
label.attr("for", id + action);
if (selected) {
checkBox.attr("checked", "checked");
label.addClass("lockerClosed");
} else {
label.addClass("lockerOpen");
}
$(this).append(label);
$(this).append(checkBox);
label.click(function() {
/*alert(checkBox.attr("checked"));*/
checkBox.attr("checked", "checked");
/*return true;*/
/*alert(checkBox.attr("checked"));*/
});
}
Mais votre étiquette est définie pour la case à cocher, de sorte que vous n'avez pas besoin de vérifier ou de décocher en cliquant sur l'étiquette - navigateur fait pour vous. Ou il me manque quelque chose? – algiecas
Eh bien, il y a plus de choses qui se passent mais cela sortirait du cadre de la question. Vous avez raison cependant. –