Der folgende Code fügt dem aufrufenden Knoten ein Kontrollkästchen und eine Bezeichnung hinzu.
Meine Frage liegt in der label.click-Funktion. Wenn das Label angeklickt wird, möchte ich den Status des entsprechenden Kontrollkästchens ändern. Was jedoch passiert, ist, dass das Kontrollkästchen immer deaktiviert wird. Zum Debuggen setze ich es immer explizit auf checked.Warum wird meine Checkbox immer deaktiviert?
Wenn ich durch den Code mit Firebug gehe, sehe ich, dass das Kontrollkästchen überprüft wird und dann, wenn Sie die Funktion verlassen, wird es wieder deaktiviert.
Irgendwelche Ideen?
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"));*/
});
}
Aber Ihr Label ist für das Kontrollkästchen gesetzt, so müssen Sie es nicht aktivieren oder zu deaktivieren, wenn auf dem Etikett klicken - Browser erledigt das für Sie. Oder ich vermisse etwas? – algiecas
Nun, es gibt mehr, aber das würde den Rahmen der Frage sprengen. Du hast aber Recht. –