Javascript 当lazyFetching设置为false时,FullCalendar jQuery插件为每个事件(悬停、鼠标悬停、调整大小等)触发ajax事件
我使用FullCalendar来显示事件,我通过一个javascript函数来调用AJAX。这样做是为了发送一个限制器,该限制器显示在给定的一天内要传回的事件数,并包含一个ViewMore选项 通过关闭lazyFetching,结果似乎是FullCalendar会对页面上触发的每个事件进行重新呈现。这导致它每次都执行一个新的AJAX调用 如何防止FullCalendar进行这些不必要的AJAX调用 下面是初始化我的完整日历的代码。谢谢Javascript 当lazyFetching设置为false时,FullCalendar jQuery插件为每个事件(悬停、鼠标悬停、调整大小等)触发ajax事件,javascript,jquery,ajax,events,fullcalendar,Javascript,Jquery,Ajax,Events,Fullcalendar,我使用FullCalendar来显示事件,我通过一个javascript函数来调用AJAX。这样做是为了发送一个限制器,该限制器显示在给定的一天内要传回的事件数,并包含一个ViewMore选项 通过关闭lazyFetching,结果似乎是FullCalendar会对页面上触发的每个事件进行重新呈现。这导致它每次都执行一个新的AJAX调用 如何防止FullCalendar进行这些不必要的AJAX调用 下面是初始化我的完整日历的代码。谢谢 $('#calendar').fullCalenda
$('#calendar').fullCalendar({
defaultView: 'basicWeek',
theme: true,
isRTL: isRightToLeft,
contentHeight: 800,
weekends: true,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
lazyFetching: false,
columnFormat: {
month: 'ddd',
week: 'ddd ' + shortMonthDayPattern,
day: 'dddd ' + shortMonthDayPattern
},
titleFormat: {
month: yearMonthPattern, // September 2009
week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}", // Sep 7 - 13 2009
day: longDatePattern // Tuesday, Sep 8, 2009
},
dayClick: function (date, allDay, jsEvent, view) {
if (view.name != 'basicDay') {
$('#calendar').fullCalendar('changeView', 'basicDay');
$('#calendar').fullCalendar('gotoDate', date);
}
},
eventClick: function (event, jsEvent, view) {
if (event.id === "viewMore") {
$('#calendar').fullCalendar('changeView', 'basicDay');
$('#calendar').fullCalendar('gotoDate', event.start);
}
else {
navigateBackboneCal(event.id);
}
},
editable: false,
loading: function (isLoading) {
if (isLoading) {
$('.fc-content').block({
message: null,
css: { top: '10' }
});
}
else {
$('.fc-content').unblock();
}
},
viewDisplay: function (view) {
},
events: function (startDt, endDt, callback) {
var maxEvents = 0;
var view = $('#calendar').fullCalendar('getView');
if (view.name === 'month')
maxEvents = 5;
else if (view.name === 'basicWeek')
maxEvents = 30;
var events = [];
$.ajax({
url: '/GetCalendarEvents',
type: 'POST',
data: { start: Math.round(startDt.getTime() / 1000), end: Math.round(endDt.getTime() / 1000), maxEvents: maxEvents },
error: function (error) {
alert('There was an error while fetching events!');
$('.fc-content').unblock();
},
success: function (result) {
if (result.viewMoreEvents)
events = $.merge(result.events, result.viewMoreEvents);
callback(events);
}
});
}
});