我使用jquery Datepicker ui。 (http://jqueryui.com/datepicker/)
当我从ajax回来时,我希望为这些日子着色。
我有这个:
$(document).ready(function()
{
getAllDays();
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true,
onChangeMonthYear: getAllDays,
beforeShowDay: highlightDays,
dateFormat: 'DD, d MM, yy',
altField: '#date_due',
altFormat: 'yy-mm-dd',
firstDay: 1
});
});
作为日期选择器。现在问题是我在getAllDays函数中得到了颜色,并且我在highlightDays函数中为颜色设置了颜色。但是亮点日在getAllDays之前运行,因此月份颜色不正确(颜色与上个月相同)
如果需要,这些是2个功能:
function getAllDays(year, month) {
$.ajax({
async: false,
cache: false,
url: "AantalUrenAjax?_d" + (new Date().getTime()) + "&jaar=" + year + "&maand=" + month,
dataType: "json",
success: function(data) {
// loop over dayUsage array result
$.each(data, function(index, value) {
// add to different arrays depending on how much time is allocated in estimates
enabledDays.push(value);
});
}
});
}
function highlightDays(date) {
for (var i = 0; i < enabledDays.length; i++) {
// console.log((enabledDays[i].jaar,enabledDays[i].maand,enabledDays[i].dag).toString());
if (new Date(enabledDays[i].Jaar, enabledDays[i].Maand, enabledDays[i].Dag).toString() === date.toString()) {
textdisplay = "Er zijn nog " + enabledDays[i].aantalafspraken.toString() + " Vrije afspraken";
switch (true) {
case (enabledDays[i].aantalafspraken < 1):
return [true, "Volzet", textdisplay];
break;
case (enabledDays[i].aantalafspraken < 3):
return [true, "BijnaVolzet", textdisplay];
break;
default:
return [true, 'Vrij', textdisplay];
}
}
}
return [true, ''];
}
我现在试着解决这个问题20个小时,我无法修复它:(
答案 0 :(得分:0)
您是否尝试将亮点日期转移到getAllDays函数的成功回调中?
success: function(data) {
// loop over dayUsage array result
$.each(data, function(index, value) {
// add to different arrays depending on how much time is allocated in estimates
enabledDays.push(value);
});
highlightDays...
}