2017-12-01 3 views
0

Im mit FullCalendar jquery-Bibliothek zum Erstellen von Ereignissen. Die Anforderung hier ist, wiederkehrende Ereignisse alle x Tage zu erstellen. Erstellen Sie zum Beispiel ein Ereignis, das an jedem zweiten Montag wiederkehrend ist (in diesem Fall alle 14 Tage).jquery FullCalendar benutzerdefinierte wiederkehrende Ereignisse

Derzeit unterstützt die Bibliothek wöchentliche oder monatliche wiederkehrende Ereignisse. Wie kann ich das erreichen?

+0

nicht wissen Sie, wenn diese Bibliothek erweiterbar ist, so dass Sie Ihre eigene Logik könnten hinzufügen für wiederkehrende Ereignisse; Wenn nicht, schreiben Sie vielleicht Ihren eigenen Code, der die Ereignisdaten berechnet und für jeden einzeln ein Ereignis hinzufügt. (Wenn Sie dies nicht für die nächsten x Jahre im Voraus tun möchten, dann könnte es vielleicht hinzugefügt werden, wenn ein Ereignis eintritt, wie der Benutzer zu einem anderen Monat wechselt.) – CBroe

+0

Danke dafür! Ich möchte nur die gleiche Logik verwenden, die bereits für die wöchentliche Wiederholung vorhanden ist, und einfach eine Markierung zum Ereignis hinzufügen (z. B. das vorhandene dow: [1], das an jedem Montag ein wiederkehrendes Ereignis anzeigt, dow2: [1] , wiederkehrend an jedem zweiten Montag), die entsprechend aus der Bibliothek bearbeitet werden. Die aktuelle wöchentliche Implementierung im Code kann nicht gefunden werden :) –

Antwort

0

Ich denke @CBroe ist korrekt, Sie könnten dies mit Ihrer eigenen Logik erreichen.

Um Ereignisse zum Kalender hinzuzufügen, müssen Sie zuerst ein Array von Ereignissen auffüllen, das dann an die Kalendereigenschaft events gebunden werden kann.

Zum Beispiel:

var events = getEvents(); 

$('#myCalendar').fullCalendar({ 
        themeSystem: 'bootstrap3', 
        header: { 
         left: 'prev,next today', 
         center: 'title', 
         right: 'month,agendaWeek,agendaDay,listMonth' 
        }, 
        weekNumbers: true, 
        weekends: false, 
        navLinks: true, // can click day/week names to navigate views 
        editable: true, 
        eventStartEditable: false, 
        height: 'auto', 
        eventLimit: true, // allow "more" link when too many events 
        events: events, 
        viewRender: function (view, element) { 
         events = getEvents(); 
         $('#myCalendar').fullCalendar('removeEvents'); 
         $('#myCalendar').fullCalendar('addEventSource', events); 
        }, 
       }); 

function getEvents(){ 
var events = []; 
var arrayOfDates; //Populate dates at intervals of 14 days 

    $.each(arrayOfDates, function() { 
        var date = this; 
         //Create event 
         events.push({ 
          title: 'myEvent', 
          start: date, 
          end: date, 
          allDay: true, 
          color: '#228B22', 
          stick: true 
         }); 

       }); 
    } 

    return events; 
} 

Nun etwas wie der sowieso .. Dies sollten Sie einen guten Ausgangspunkt

Verwandte Themen