Web サイト用のオンライン カレンダーを作成しており、jquery の removeClass および addClass 関数を使用して、選択した日の背景を変更したいと考えています。スクリプトは最初のクリックで正常に動作し、古い日の背景がデフォルトの色に移動され、クリックされた日 (td) が強調表示されます。ただし、その後のクリックでは強調表示された色が保持されます。つまり、選択した日が複数あります。
.on() live() を含むさまざまなソリューションと、他の投稿のさまざまな if 関数を試しました。
$('#calendarGrid td').on("click", function() {
$('#calendarGrid td').removeClass('today');
$(this).addClass('today');
});
私のCSSは次のようになります。
#calendarGrid .wEnd{background: #DDD;}
#calendarGrid .wDay{background: #EEE;}
#calendarGrid .today{background: #99BBEE;}
ここにテーブル全体を配置せずに、HTMLは
<table id="calendarGrid">
<tr>
<td name='2012-04-07' class='wEnd today' id='a6'>7</td>
<td name='2012-04-08' class='wEnd' id='b0'>8</td>
<td name='2012-04-09' class='wDay' id='b1'>9</td>
</tr>
<table>
奇妙なことに、 CSS .today
を取得しているにもかかわらず、削除されたかのように動作する JavaScript がさらにある場合。.today
アドバイスをいただければ幸いです。