2013-02-12 3 views
7

Ich habe gerade angefangen, dieses Plugin zu verwenden, und ich habe Probleme beim Entfernen von Ereignissen, die ich gerade erstellt habe. Ich kann alle Ereignisse löschen, wenn ich eventClick verwende, aber keine Ereignisse bei eventClick.Entfernen bestimmter Ereignisse mit removeEvents-Methode

Jede Hilfe wäre willkommen. Hier ist mein Code.

<script type='text/javascript'> 

$(document).ready(function() { 

    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 

    var calendar = $('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     selectable: true, 
     selectHelper: true, 
     select: function(start, end, allDay) { 
      var title = prompt('Trade Show Name:'); 
      if (title) { 
       calendar.fullCalendar('renderEvent', 
        { 
         title: title, 
         start: start, 
         end: end, 
         allDay: allDay, 
         id: 12 
        }, 
        true // make the event "stick" 
       ); 
      $('input[name="startDate"]').val(start); 
      } 
      calendar.fullCalendar('unselect'); 
     }, 
     eventClick: function(calEvent, jsEvent, view) { 
      $('#calendar').fullCalendar('removeEvents', function (calEvent) { 
       return true; 
      });, 
     editable: true 
    }); 

}); 
+0

Haben Sie Folgendes gelesen: http://arshaw.com/fullcalendar/docs/event_data/removeEvents/ – j08691

+0

Ja, ich tat es. Ich war mir einfach nicht sicher, welche ID in meine Funktion einfließen sollte. – wowzuzz

+0

Anscheinend eine Ereignis-ID oder eine Funktion. – j08691

Antwort

24

Sie können dies auf 2 Arten tun:

1) Stellen Sie eine eindeutige ID für jede Ihrer Veranstaltungen und diese IDs an den removeEvents Aufruf übergeben.

eventClick: function (calEvent, jsEvent, view) {   
    $('#calendar').fullCalendar('removeEvents', calEvent._id); 
} 

Hier _id ist die eindeutige ID fullCalendar generiert.

2) Übergeben Sie eine Filterfunktion, um das gewünschte Ereignis zu löschen.

In Anbetracht, dass Sie versuchen, dies in eventClick zu tun, würde ich vorschlagen, dass Sie die zweite verwenden. Ein Beispiel für Ihren Fall ist wie folgt:

eventClick: function (calEvent, jsEvent, view) { 
    $('#calendar').fullCalendar('removeEvents', function (calEvent) { 
     return true; 
    }); 
} 

zu removeEvents geben Hier die Filterfunktion übernimmt den Fall, dass Sie und true zurück löschen möchten. Da Sie dies in eventClick tun, alles, was Sie tun müssen, ist calEvent übergeben.

Hoffe, das hilft!

+1

Der Code funktioniert immer noch nicht. Bearbeitungen sind oben. Es löscht alle Ereignisse ab sofort. – wowzuzz

+1

Nun ja - weil der Filter für alle Ereignisse wahr ist. Sie müssen eine Bedingung eingeben, die das zu löschende Ereignis eindeutig identifiziert und in diesem Fall nur true zurückgibt. Wenn Sie mit Ihrem Code arbeiten möchten, gehen Sie bitte mit Option 1 (Ich habe das mit einem Beispiel aktualisiert) – ganeshk

+0

Ahh Ich wusste nicht, dass die eindeutige ID _id generiert wurde. Vielen Dank für Ihre Hilfe und Erklärung. :) – wowzuzz

Verwandte Themen