QA@IT

jQueryでカレンダーの背景色を一括でデフォルトにしたい

3384 PV

すみません。

http://success.net-c.net/jquery/holiday_entry.html

でjQueryのカレンダーを使って、
日付を選択したら日付の背景色をピンク色にし、もう1度クリックしたらもとの色に戻すようにしています。

それはできるようになったのですが、
「一括クリア」ボタンを押したら、日付の背景色がピンク色のところを、すべてデフォルトの色にしたいのですが、できない状態です。

どうすれば一括で背景色をデフォルトの色に変更できますでしょうか?

当方ではIE9で確認しています。

お手数おかけしますが、もしわかればご教授願います.


※下記の方法で解決しました。
// 一括クリア
$("#clr").click(function () {
$("table.ui-datepicker-calendar").find("td").removeClass("holiday");
});

回答

ちょっとエラーが多いですね。
参照エラーは削除かコメントアウトしたほうがいいです。

jQuery-uiのdatepickerですね。

回答については一括クリアの部分をこのようにすれば良いでしょう。
選択した値がテキストボックスにも追加されてますので、画面初期状態のものを残さないといけなかったということです。

// 一括クリア
var initialHolidaysVal = $('#holiday').val();
$("#clr").click(function () {
    $('#holiday').val(initialHolidaysVal);
    holidays = $('#holiday').val().split(",");
    $("#datepicker").datepicker("refresh");
});

これでうまくいくと思いますがどうでしょうか。

編集 履歴 (0)
  • すみません。先ほど間違ってパッチに送ってしまいました。。
    // 一括クリア
    $("#clr").click(function () {
    $("table.ui-datepicker-calendar").find("td").removeClass("holiday");
    });
    で解決できました。
    -
  • それだともう一度どこかの日付をクリックするとそこ以外もすべて復活すると思いますが、そこは大丈夫なんですか? -
  • http://success.net-c.net/jquery/holiday_entry1.html
    の通りするとできるようになりました。もし、flied_orionさんに教えていただいたやり方で実装する場合は,#holidayみたいなテキストボックスを1つ追加して初期状態を保存できるようにしようと思います
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。