我已经看到很多关于'JavaScript仅在警报中起作用'的问题,但答案仅针对这些问题。我正在使用Kendo Calender,并希望从数据库中的值突出显示特定日期。以下代码仅在写入警报时才能正常工作。求助:
var duedates = [];
function GetDueDates() {
$.ajax({
type: "POST",
url: "ChartBinder.asmx/GetDueDates",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
duedates = $.parseJSON(msg.d);
},
error: function (msg) {
alert("error");
}
});
}
$(document).ready(function () {
GetDueDates();
//在此处插入警报时功能正常工作..
var today = new Date();
$("#calendar").kendoCalendar({
change: onChange,
navigate: onNavigate,
value: today,
dates: duedates,
month: {
// template for dates in month view
content: '# if ($.inArray(+data.date, data.dates) != -1) { #' +
'<div class="' +
"dataexist" +
'"></div>' +
'# } #' +
'#= data.value #'
},
footer: "Today - #=kendo.toString(data, 'd') #"
});
$(document).find("#panelbar").kendoPanelBar({
expandMode: "single"
});
});
答案 0 :(得分:0)
获得解决方案:更改代码如下:
var duedates = [];
function GetDueDates() {
$.ajax({
type: "POST",
url: "ChartBinder.asmx/GetDueDates",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
duedates = $.parseJSON(msg.d);
},
error: function (msg) {
alert("error");
} });
}
$(document).ready(function () {
GetDueDates();
setTimeout(function () { loadCalender(); }, 100);
$(document).find("#panelbar").kendoPanelBar({
expandMode: "single"
});
});
function loadCalender() {
var today = new Date();
$("#calendar").kendoCalendar({
change: onChange,
navigate: onNavigate,
value: today,
dates: duedates,
month: {
// template for dates in month view
content: '# if ($.inArray(+data.date, data.dates) != -1) { #' +
'<div class="' +
"dataexist" +
'"></div>' +
'# } #' +
'#= data.value #'
},
footer: "Today - #=kendo.toString(data, 'd') #"
});
}