[英]FullCalendar Doubling Events using JQuery
您好,我在使用完整日歷庫時遇到問題。
僅當我按下自定義的“過濾器”按鈕並更改月份時,事件才會繼續加倍。
當我調用過濾器時,我將刪除所有事件,並使用過濾后的結果重新填充。 當我按下左/右按鈕時,該問題看起來像它再次調用事件填充並添加事件。 我想禁用它或對其進行重做。
這是正在發生的事情: 在此處輸入圖像描述
日歷代碼:
function calendarView()
{
//$('#calendar').fullCalendar('removeEvents')
var url_str = "/Calendar/GetCalendarEvents"
$('#calendar').fullCalendar({
header: {
left: 'prev,next, today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
fixedWeekCount: true,
eventLimit: 4,
events: url_str,
eventClick: function (calEvent, jsEvent, view)
{
editable: false;
var currentDate = new Date();
currentDate.setHours(0, 0, 0, 0);
if (calEvent.start >= currentDate - 1)
openEditVisit(calEvent.id)
}
});
};
篩選器按鈕呼叫代碼
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Calendar/GetCalendarEvents",
data: j,
async: false,
dataType: 'json',
success: function (data)
{
$('#calendar').fullCalendar('removeEvents')
$('#calendar').fullCalendar('addEventSource', data)
},
error: function (xhr, err) {
alert("ERROR! - readyState: " + xhr.readyState + "<br/>status: " + xhr.status + "<br/>responseText: " + xhr.responseText);
}
});
您有一個問題,因為既然您已經將事件定義為JSON提要( events: url_str
),那么無論何時更改視圖,它都將獲取沒有過濾器選項的那些事件。 這是除了你以前添加作為一個單獨的事件源過濾的事件。
因此,您可以使用的更好的解決方案是利用內置的事件即功能功能,並讓您的自定義功能考慮UI中的過濾器選項,並將其與開始/結束一起發送到服務器。 fullCalendar提供的日期。 這樣可以確保當您更改視圖或日期時,返回的結果會考慮您的過濾條件,並且不會重復事件。
同時,您的額外過濾器按鈕可以在單擊時僅調用“ refetchEvents”,以從主事件源(已定義並使用過濾器選項)刷新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.