我正在使用FullCalendar.js,並且想要摺疊一些事件(使用eventLimit),但我總是希望在日曆上顯示其他事件。 FullCalendar可能嗎?在fullcalendar.js中,如何將eventLimit設置爲僅適用於某些事件?
如果沒有,這是一個很容易的變化,可以做到源?我查看了這些事件,但看不到一種方法可以輕鬆地指定僅適用於eventLimit代碼的特定事件。
我正在使用FullCalendar.js,並且想要摺疊一些事件(使用eventLimit),但我總是希望在日曆上顯示其他事件。 FullCalendar可能嗎?在fullcalendar.js中,如何將eventLimit設置爲僅適用於某些事件?
如果沒有,這是一個很容易的變化,可以做到源?我查看了這些事件,但看不到一種方法可以輕鬆地指定僅適用於eventLimit代碼的特定事件。
得到這個做的工作如下:
當添加/創建活動,我插入一個新的屬性叫他們isLimited
並將其設置爲true
(此屬性是除了正常的像start
,id
,title
等)。這使我可以定義eventLimit將隱藏哪些事件。
接下來,在配置的eventRender
功能,我添加了這個:
if (event.isLimited) element.addClass('isLimited');
我用這個類的目標我想隱藏的元素。要做到這一點,在fullcalendar.js,在limitRow
功能(約4937線左右,至少對我來說)我改變了這個:
limitedNodes = rowStruct.tbodyEl.children().slice(levelLimit) // get level <tr> elements past the limit
.addClass('fc-limited').get(); // hide elements and get a simple DOM-nodes array
要這樣:
limitedNodes = rowStruct.tbodyEl.children().slice(levelLimit) // get level <tr> elements past the limit
.find('td.isLimited').addClass('fc-limited').get(); // hide elements and get a simple DOM-nodes array
然後,在相同的文件,圍繞行5204左右,在getCellSegs
功能,我改變了這一點:
if (seg) {
segs.push(seg);
}
要這樣:
if (seg && seg.event.isLimited) {
segs.push(seg);
}
這使得日曆僅對「更多」鏈接使用isLimited
進行計數。然後最後我已將此添加到日曆配置爲eventAfterAllRender
功能:
eventAfterAllRender: function(view) {
$('.fc-more-cell').parent('tr').each(function(){
$(this).appendTo($(this).parent());
});
},
這是爲了讓「更多」鏈接將一直在該行的其他事件後的底部。