为了防止重复事件,请执行以下操作:
在 jquery.calendar.js 文件中转到该populate()
函数。在 ajax 成功函数中添加以下行:
option.eventItems = new Array();
这肯定会删除所有事件并防止重复。
完整代码:
$.ajax({
type: option.method,
url: option.url,
data: param,
dataType: "json",
dataFilter: function(data, type) {
return data;
},
success: function(data) {//function(datastr) {
option.eventItems = new Array(); // Without this line there will be duplicates
if (data != null && data.error != null) {
if (option.onRequestDataError) {
option.onRequestDataError(1, data);
}
}
else {
// Good response
data["start"] = parseDate(data["start"]);
data["end"] = parseDate(data["end"]);
$.each(data.events, function(index, value) {
value[2] = parseDate(value[2]);
value[3] = parseDate(value[3]);
});
responseData(data, data.start, data.end);
pushER(data.start, data.end);
}
if (option.onAfterRequestData && $.isFunction(option.onAfterRequestData)) {
option.onAfterRequestData(1);
}
option.isloading = false;
},
error: function(data) {
try {
if (option.onRequestDataError) {
option.onRequestDataError(1, data);
} else {
alert(i18n.xgcalendar.get_data_exception);
}
if (option.onAfterRequestData && $.isFunction(option.onAfterRequestData)) {
option.onAfterRequestData(1);
}
option.isloading = false;
} catch (e) { }
}
});
我希望它会帮助你