次のコードは、呼び出し元のノードにチェックボックスとラベルを追加します。
私の質問は、label.click関数にあります。ラベルをクリックするたびに、一致するチェックボックスの状態を変更したいと思います。しかし、チェックボックスは常にチェックされなくなります。 デバッグの目的で、私は常に明示的にcheckedに設定しました。チェックボックスはいつもチェックされていませんか?
Firebugでコードをステップ実行すると、チェックボックスがオンになっていることが確認され、機能を終了すると再びチェックが外されます。
アイデア?
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"));*/
});
}
しかし、あなたのラベルはチェックボックスに設定されているので、ラベルをクリックしたとき、あなたはそれをチェックしたり、オフにする必要はありません - ブラウザはあなたのためにそれを行います。それとも私は何かが欠けている? – algiecas
さて、もっと進んでいますが、それは質問の範囲外になるでしょう。あなたは正しいです。 –