1つの方法は、カレンダーに送信するイベントオブジェクトの 'className'プロパティを設定し、jqueryを使用してこれらのイベントを非表示にすることです($(。myClassName).hide() )チェックボックスをチェックするとき。問題は、あなたが望むものではないかもしれないギャップを残してイベントが消えてしまうことです。
良い方法は、あなたが最初にこのようfullCalendarを呼び出すときに、イベントオプションにフィルタ機能を追加することです:
fullCalendar({
...
events: {
url: ....,
success: function(events) {
$.map(events, function (e) {
if (userHasFilteredOut(e))
return null;
else
return e;
});
},
...
});
それらが表示される前に、このイベントを除外します。関数userHasFilteredOutは、渡されたイベントオブジェクトが、ユーザーのチェックボックスの値が除外されているクラスである場合にtrueを返します。ユーザーがチェックボックスをオンまたはオフにすると、サーバーからすべてのイベントを再フェッチする必要があります。あなたはこれをする必要があります:
$('#mycal').fullCalendar('refetchEvents');
これは動作しますが、それは次のようにする必要があります。成功:function(events){events = $ .map(events、function(e){...});リターン(出来事); – shitburg
drag'n'dropの制約がある場合はどうなりますか?私はイベントを隠す必要がありますが、重複するポリシーを引き続き尊重するにはdrag'n'dropが必要です。それを行う方法はありますか? – Michael