我使用了bootstrap datepicker。在页面加载时我调用REST api来获取该月的假日列表。然后我拿出一个数组中的所有日期(仅限日期)。并且手动我已经编写了代码来为假日日期的背景着色,当页面第一次加载时工作正常,但是如果我按下' f5'或者&#c; ctrl + f5'我从数据库中获得所有假期但假日日期背景颜色消失,并保持其默认颜色。 我写的代码如下。
var finalHolidayDateListForMonth = new Array();
var finalHolidayDateListForMonthComment = new Array();
var k=0;
for(var i=0 ; i<self.monthlyHolidays.length; i++){
var startDate = self.monthlyHolidays[i].holidayStartDate;
var endDate = self.monthlyHolidays[i].holidayEndDate;
//console.log(i+": startDate: "+startDate+" , end date: "+endDate);
//console.log("Before loop: j="+startDate.split("-")[2]+" ,k="+k);
for(var j=startDate.split("-")[2] ; j<endDate.split("-")[2] || j==endDate.split("-")[2]; j++){
console.log("coming in loop, j="+j+" , k="+k);
finalHolidayDateListForMonth[k]=j;
finalHolidayDateListForMonthComment[k]=self.monthlyHolidays[i].holidayName;
console.log("Holidays found: "+finalHolidayDateListForMonth[k]);
k++;
}
}
$("#calendar .datepicker").find("table tbody tr").each(function(){
console.log("inside datepicker for each loop");
$(this).find("td").each(function(){
var m;
if(($(this).attr('class')) == 'day' || ($(this).attr('class')) == 'today day' ){
var element = parseInt($(this).html());
for(m=0 ; m<finalHolidayDateListForMonth.length ; m++){
if(element == finalHolidayDateListForMonth[m]){
//$(this).addClass("holiday");
console.log("coloring background");
$(this).wrapInner('<center><div title='+finalHolidayDateListForMonthComment[m]+' data-toggle="tooltip" id=circle></div></center>');
break;
}
//alert("element:"+element+" m:"+m+" array length:"+finalHolidayDateListForMonth.length);
}
}
});
});
在它看起来像之前,
有人能告诉我要去哪儿吗? 谢谢.. !!