HTML 構造:
<tr>
<td class="edit"><input type="checkbox" class="editbox" /></td>
<td class="content"><input type="text" class="contentbox" size="40" disabled="disabled"/></td>
<td class="delete"><input type="checkbox" class="deletebox" /></td>
</tr>
私は何をしたいですか?ユーザーがinput.editboxをクリックすると:
- input.contentbox が編集可能になりました
- input.deletebox がオフになりました (以前にチェックされていた場合)
ユーザーがinput.deleteboxをクリックすると:
- input.contentbox が無効になりました
- input.editbox がオフになりました (以前にチェックされていた場合)
私はその構造のためにこれをしました:
<input type="checkbox" class="editbox"/>
<input type="text" class="contentbox" size="40" disabled="disabled"/>
<input type="checkbox" class="deletebox"/>
.next() および .prev() を使用して
$(document).ready(function () {
$("#form input.editbox[type=checkbox]").each(function () {
$(this).change(function () {
if ($(this).is(":checked")) {
$(this).next().removeAttr("disabled");
$(this).next().next().attr('checked', false);
} else {
$(this).next().attr("disabled", "disabled");
}
});
});
$("#form input.deletebox[type=checkbox]").each(function () {
$(this).change(function () {
if ($(this).is(":checked")) {
$(this).prev().attr("disabled", "disabled");
$(this).prev().prev().attr('checked', false);
}
});
});
});
ただし、jQuery コードを新しい構造に変換することはできません。どんな助けやアイデアも大歓迎です。