イベントの重複を防ぐために、次のようにします。
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) { }
}
});
お役に立てば幸いです