2010-12-17 4 views
0

Ich habe eine Checkbox-Schaltfläche, die ich die Ereignisse onChange erneut rendern möchte. Ich rufe die rerenderEvents-Funktion auf, aber die eventRender-Funktion, die ich im Kalendererstellungsskript angegeben habe, wird nicht ausgelöst. Aufruf der Renderfunktion $ ('# calendar'). FullCalendar ('render'); funktioniert aber dann aus irgendeinem Grund Ereignisse Ereignisse, die am selben Tag besetzen sich überlappen einander statt Stapeln.rerenderEvents ruft eventRender-Callback und andere Fehler nicht auf

Hier ist mein Code, haben die anderen Initialisierungsparameter zur besseren Lesbarkeit entfernt:

$('#calendar').fullCalendar({ 
    eventRender: function(event, element) { 
     //alert(event.title); 
     if(event.status == 1) { 
     //alert(event.title); 
     if(!$("#accepted").attr("checked")) 
      return false; 
     } 
     else if(event.status == 2) { 
     if(!$("#rejected").attr("checked")) 
      return false; 
     } 
     else if(event.status == '') { 
     if(!$("#nostatus").attr("checked")) 
      return false; 
     } 
    } 
}) 

$("#accepted").change(function() { 
    $('#calendar').fullCalendar('rerenderEvents'); 
}); 

$("#rejected").change(function() { 
    $('#calendar').fullCalendar('render'); 
}); 

Antwort

0

Statt falsch in eventRender der Rückkehr Ereignisse zu verbergen ich eine Klasse-Element hinzugefügt, die Anzeige eingestellt: keine. Dies ergab den Effekt, den ich ohne Überlappung suchte. Ich musste die render-Funktion anstelle von rerenderEvents für die change-Ereignisse aufrufen, da nur die render-Funktion den eventRender aufruft, wo ich den Code für die Verarbeitung verwende.