2016-12-06 49 views
0

データベースからロードするイベントがいくつかあります。すべてのイベントはdowで初期化されています: ''、そうしない限り特定の日にイベントが繰り返されることは望ましくないからです。私のイベントは、カレンダーにドラッグされたときにデータがデータベースに送信される外部イベントから定義されます。FullCalendar dowプロパティの定期的なイベント

if($(this).text() == 'event1') { 
    $(this).data('event', { 
    title: $.trim($(this).text()), 
    stick: true, 
    start : '2016-12-01T12:00:00', 
    allday : false, 
    dow : '' 
    ... 

ので、ユーザは、例えば月曜日に再発するイベントを望んでいる場合、ユーザーは月曜日のためのチェックボックスを押し、イベントをクリックして、eventClick火災やダウにダウ属性を変更:[0]。

eventClick: function(event, jsEvent, view) { 
      console.log("attempting click"); 
      if ($('#day1').is(':checked')) { // day1 is a checkbox for monday 
       event.dow = [0]; 
       ... 

これは、すべてのイベントが再レンダリングされるときに、次の月曜日にイベントコピー自体を作成するわけではありません。あなたが最初にイベントを定義するとき、または間違っているときにそれを設定すると、 'dow'しか動作しないようです。与えられたイベントが作成された後に.dowを動的に定義し、そのイベントをカレンダーにコピーする方法はありますか?

答えて

0

これを試してみてください:

$('#calendar').fullCalendar({ 
     weekends: true, 
     defaultView: 'agendaWeek', 
     allDaySlot: false, 
     header: { 
      left: 'month,agendaWeek,agendaDay,listDay', 
      center: 'title', 
      right: 'prev,next today' 
     }, 
     events: [{ 
      id: 999, 
      title: 'event1', 
      start: '2016-12-05T16:00:00', 
      end: '2016-12-05T18:00:00' 
     }], 
     height: 'auto', 
      editable: true, 
     eventClick: function(event, jsEvent, view) { 
     var updatedEvent = { 
       id: 999, 
       title: 'updated event1', 
       start: '16:00:00', 
       end: '18:00:00', 
       dow: [0] 
      }; 
     $('#calendar').fullCalendar('removeEvents', event._id); 
     $('#calendar').fullCalendar('renderEvent', updatedEvent, true); 
     } 
     }); 

https://jsfiddle.net/rjzn6yuj/

敬具
クシシュトフ

+0

を私はこれを中に入れてみました、それはイベントを削除し、その月ごとの日のための新しいイベントを作成しますが、あなたの場合新しい月にスワップしてスワップすると、updatedEvent - > http://imgur.com/a/js80LのrenderEvent呼び出しでstick = trueのときに表示される重複の – jones

+0

のスクリーンショットが各月曜日に更新されたイベント1の5つのコピーのようです。 – jones

+0

私何が間違っているのか理解しようとしている。 –

関連する問題