2016-09-08 86 views
0

我正在使用FullCalendar.js,並且想要摺疊一些事件(使用eventLimit),但我總是希望在日曆上顯示其他事件。 FullCalendar可能嗎?在fullcalendar.js中,如何將eventLimit設置爲僅適用於某些事件?

如果沒有,這是一個很容易的變化,可以做到源?我查看了這些事件,但看不到一種方法可以輕鬆地指定僅適用於eventLimit代碼的特定事件。

回答

0

得到這個做的工作如下:

當添加/創建活動,我插入一個新的屬性叫他們isLimited並將其設置爲true(此屬性是除了正常的像startid,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()); 
    }); 
}, 

這是爲了讓「更多」鏈接將一直在該行的其他事件後的底部。

相關問題