2016-02-23 42 views
1

我正在使用Fullcalendar.js開發預約應用程序。用戶將能夠創建定期約會,在這種約會中,他們將能夠選擇每週重複一天。在經常性事件中刪除特定日期

但現在我面臨着一個問題。假設用戶只需要刪除今天的約會,並保持其他定期約會繼續。

問題
我怎樣才能讓用戶從我的應用程序中的定期約會刪除單個約會?

CODE:

$('#calendar').fullCalendar({ 

     defaultDate: moment(), 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     defaultView: 'month', 

     events: [{ 
      title:"My repeating event", 
      start: '10:00', // a start time (10am in this example) 
      end: '14:00', // an end time (6pm in this example) 

      dow: [ 1, 2 ] //repeat every monday and tuesday 
     },{ 
      title:"My repeating123 event", 
      start: '10:00', // a start time (10am in this example) 
      end: '14:00', // an end time (6pm in this example) 
     }], 
    }); 

回答

0

你需要做的一些東西,在fullcalendar.js主文件。

只需更換原有的功能與下面

function expandEvent(abstractEvent, _rangeStart, _rangeEnd) { 
     var events = []; 
     var dowHash; 
     var dow; 
     var i; 
     var date; 
     var startTime, endTime; 
     var start, end; 
     var event; 

     _rangeStart = _rangeStart || rangeStart; 
     _rangeEnd = _rangeEnd || rangeEnd; 

     if (abstractEvent) { 
      if (abstractEvent._recurring) { 

       // make a boolean hash as to whether the event occurs on each day-of-week 
       if ((dow = abstractEvent.dow)) { 
        dowHash = {}; 
        for (i = 0; i < dow.length; i++) { 
         dowHash[dow[i]] = true; 
        } 
       } 

       // iterate through every day in the current range 
       date = _rangeStart.clone().stripTime(); // holds the date of the current day 
       while (date.isBefore(_rangeEnd)) { 

        if ((!dowHash || dowHash[date.day()]) && moment(date).format('YYYY-MM-DD') != moment().format('YYYY-MM-DD')) { // if everyday, or this particular day-of-week // Add your condition for today here... 


         startTime = abstractEvent.start; // the stored start and end properties are times (Durations) 
         endTime = abstractEvent.end; // " 
         start = date.clone(); 
         end = null; 

         if (startTime) { 
          start = start.time(startTime); 
         } 
         if (endTime) { 
          end = date.clone().time(endTime); 
         } 

         event = $.extend({}, abstractEvent); // make a copy of the original 
         assignDatesToEvent(
          start, end, 
          !startTime && !endTime, // allDay? 
          event 
         ); 
         events.push(event); 
        } 

        date.add(1, 'days'); 
       } 
      } 
      else { 
       events.push(abstractEvent); // return the original event. will be a one-item array 
      } 
     } 

     return events; 
    } 
+0

謝謝,但如何使用功能?你能告訴我一些例子嗎? – user998405

+0

你需要改變原來的功能與新的上面提到的答案。必須有一個名爲fullcalendar.js的文件。只需打開它並找到'函數expandEvent(abstractEvent,_rangeStart,_rangeEnd){'並用函數參數和正文替換整個函數與新函數中所述答案。 –

+0

Thanks.i讓你的意思。但我的意思是在我的HTML。我如何去調用這個函數?你能告訴我這個例子嗎? – user998405