2016-09-08 120 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()); 
    }); 
}, 

这是为了让“更多”链接将一直在该行的其他事件后的底部。

相关问题