2016-09-08 8 views
0

私はFullCalendar.jsを使用しており、(eventLimitで)折りたたみたいイベントがいくつかありますが、常にカレンダーに表示したいイベントがあります。これはFullCalendarで可能ですか?fullcalendar.jsでは、特定のイベントにのみ適用するようにeventLimitを設定するにはどうすればよいですか?

もしそうでない場合は、ソースに簡単に変更できますか?私はイベントを調べましたが、eventLimitコードを適用する特定のイベントだけを簡単に指定する方法はありませんでした。イベントの作成/追加、私は彼らがisLimitedと呼ばれるために新しいプロパティを挿入し、trueに設定した場合(このプロパティはstartのような通常のものに加えて、ある

を:

答えて

0

は、次の手順を実行して動作するように、これを手に入れました、idtitleなど)。これにより、どのイベントがeventLimitによって隠されるかを定義することができます。

次に、configにeventRender機能では、私はこれを追加しました:

if (event.isLimited) element.addClass('isLimited'); 

私は非表示にしたい要素をターゲットに、このクラスを使用していました。で、その後

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 

:これに

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 

:これを行うには、fullcalendar.jsに、(ライン4937かそこらの周りに、少なくとも私にとっては)limitRow機能で、私はこれを変更しましたこれに

if (seg) { 
    segs.push(seg); 
} 

同じファイル、行5204かそこらの周りに、 getCellSegs機能では、私はこれを変更しました

これにより、カレンダーは「more」リンクの場合はisLimitedのイベントのみをカウントします。そして、最終的に私はeventAfterAllRender関数としてカレンダーの設定にこれを追加しました:

eventAfterAllRender: function(view) { 
    $('.fc-more-cell').parent('tr').each(function(){ 
     $(this).appendTo($(this).parent()); 
    }); 
}, 

これは、「より多くの」リンクは、常に他のイベントの後の行の下になりそうです。

関連する問題