最初に私の HTML がどのようなものかを理解してもらうために、ラジオ ボタンの 3 つのグループを含むページを用意しています。ラジオの各グループは、コンテナー (つまり、ページ 1、ページ 2、ページ 3) によって名前が付けられています。したがって、ラジオの最初のグループはすべて「page1」という名前を共有し、2 番目のグループは「page2」という名前を共有します。
そのため、jQuery を使用してラジオ ボタンとそのラジオを含むテーブルのクラスを切り替えています (つまり、addClass、removeClass on toggle)。トグルは正常に機能し、トグルでのクラスの追加と削除も同様です。私の問題は、page2 または page3 のラジオを選択してから、page1 のラジオを選択/再選択すると、jQuery が page2 および page3 のチェックされたラジオ スタイルのクラスを削除することです。
JSfiddle デモへのリンクは次のとおりです。
そして、私が使用しているjQueryを見てみましょう。
$(function() {
$('table').click(function(event) {
$(this).closest('.container').addClass('selected').parent().siblings().each(function() {
$(this).find('.container').removeClass('selected');
});
if(event.target.type != "radio") {
var that = $(this).find('input:radio');
that.attr('checked', !that.is(':checked'));
if (that.is(':checked')) {
that.closest('table').addClass('selected');
}
else {
that.closest('table').removeClass('selected');
}
}
});
});