jQuery Datepicker で日付範囲の CSS を強調表示または変更しようとしています。ユーザーが開始日と終了日をクリックして、その範囲内のすべての日付も強調表示できるようにします。クリックするとその範囲の日付の配列を作成できましたが、何らかの理由でクラスを追加して CSS を変更することはできません。
その日付の配列を取得し、CSS クラスをそれらすべてに追加して、背景/ハイライトを変更するにはどうすればよいですか?
どんな助けでも大歓迎です!
ありがとう
jQuery Datepicker で日付範囲の CSS を強調表示または変更しようとしています。ユーザーが開始日と終了日をクリックして、その範囲内のすべての日付も強調表示できるようにします。クリックするとその範囲の日付の配列を作成できましたが、何らかの理由でクラスを追加して CSS を変更することはできません。
その日付の配列を取得し、CSS クラスをそれらすべてに追加して、背景/ハイライトを変更するにはどうすればよいですか?
どんな助けでも大歓迎です!
ありがとう
ユーザーが配列で日付を選択したと仮定します。「beforeShowDay」オプションを使用して、現在表示されている月の各日を反復する関数を指定できます。関数は、各日付を配列と比較し、一致する css クラスを適用できます。
たとえば、日付ピッカーを次のように初期化します...
jQuery(".cal").datepicker({
beforeShowDay: checkDates
})
関数 checkDates() は次のようになります (配列が dateArray と呼ばれると仮定します....
function checkDates(theDate){
for(i=0;i<dateArray.length;i++){
if(dateArray[i].valueOf()===thedate.valueOf()){
return [false,"cssClass","title"];
}else return [true,""]
}
})
日付がdateArray内に含まれている場合、これはクラス「cssClass」を日付に適用します
return ステートメントの true/false ビットは、日付が選択可能かどうかを決定し、「タイトル」とマークされたビットは、html タイトル属性 (ツールヒント) です。
注意 これは日付を最も近いミリ秒と比較するため、日付に合わせて変更することをお勧めします
開始日用の日付ピッカーと終了日用の日付ピッカーを使用してこれを成功させたので、1 つの日付ピッカー用に変更しました。コードは次のとおりです。
$(function () {
var today = new Date();
var thisYear = (today).getFullYear();
var fromDate = '1/1/2000' //this is the initial from date to set the datepicker range
var toDate = '1/7/2000' // this is the initial to date to set the datepicker range
//... initialize datepicker....
},
beforeShowDay: function(date){
//if the date is in range
if (date >= fromDate && date <= toDate) {
return [true, 'ui-individual-date', '']; //applies a css class to the range
}
else {
return [true, '', ''];
}
},
onSelect: function (dateText, obj) {
//sets the new range to be loaded on refresh call, assumes last click is the toDate
fromDate = toDate;
toDate = new Date(dateText);
$(".classDp1").datepicker("refresh");
$(".classDp2").datepicker("refresh");
},
更新するたびに、新しい fromDate と toDate の範囲で beforeShowDay 関数が呼び出されます。関数の外に変数を持ち、それらを関数内で変更すると、クリックごとに css からの強調表示を適用できます。