1

目標: アジェンダウィーク ビューで Fullcalendar を使用しています。私がする必要があるのは、特定の週のいくつかのイベントをクリックして (色を変更するため)、[次へ] をクリックして次の週に移動し、他のいくつかのイベントを選択することです。

問題: [次へ] をクリックするたびに、古いイベント (前の週から) に指定したプロパティが失われます。たとえば、色を変更し、アクティブなプロパティを追加します (現在選択されているイベントを知るためのカスタム プロパティ)。これが私のコードです

$('#calendar').fullCalendar({
  defaultView: 'agendaWeek',
  header: {
    left: 'prev,next today',
    center: 'title',
    right: 'agendaWeek,agendaDay'
  },
  allDaySlot:false,
  editable: false,
  events: link_here,

  eventClick: function(calEvent, jsEvent, view) {
    if(calEvent.active)
    {

      calEvent.active=false;

      current_lessons= current_lessons.replace(calEvent.class_date+calEvent.class_id+"$",'');
    }

    else
    {
      calEvent.title="clicked";

      calEvent.active=true;
      current_lessons+=calEvent.class_date+calEvent.class_id+"$";
    } 
   if($(this).hasClass('active'))
    $(this).removeClass('active');
  else $(this).addClass('active');

  }
});

アクティブなクラスは、要素の色付けに使用されます。繰り返しになりますが、イベントが色付けされ、アクティブなセットの新しいプロパティが true に設定されます。次に [次へ] をクリックして戻ると、すべてのイベントは色付けされず、アクティブなプロパティが false になります。

どうすればこの問題を解決できますか? たくさん検索しましたが、正確に欲しいものが見つかりませんでした。前もって感謝します。

4

3 に答える 3

1

フルカレンダーを使用して同じ問題が発生しました。renderEvent メソッドを呼び出すと、次のように気づきました。

app.calendarObj.fullCalendar("renderEvent", {
      "start": "someDateTime",
      "end": "otherDateTime"
    });

また、このメソッドの 2 番目のパラメーターとして true を追加すると、月が変わってもカレンダーに保持されます。

app.calendarObj.fullCalendar("renderEvent", {
      "start": "someDateTime",
      "end": "otherDateTime"
    },true);
于 2018-06-20T04:14:14.300 に答える
0

イベントを変更した後、fullcalendar でイベントを強制的に更新してみてください。

this.$("#calendar").fullCalendar('updateEvent', calEvent);

問題が解決しない場合は、fullcalendar が正しい参照を取得していない可能性があります。次に、これを試してください。

// get specif event (reference)
var specificEvent = $('#calendar').fullCalendar('clientEvents', calEvent.id);
this.$("#calendar").fullCalendar('updateEvent', specificEvent);
于 2013-08-22T13:31:03.307 に答える