2016-11-18 3 views
0

Ich arbeite mit Vollkalender und frage mich, ob es eine Möglichkeit gibt, bestimmte Daten nicht klickbar zu machen. Die Funktion, die ich bisher gesehen habe, vergleicht alle Datumsquadrate im Kalender mit einem Höchstdatum, das ich zuvor definiert habe. Wenn das Datum über das maximale Datum hinausgeht, füge ich eine Klasse hinzu, um sie auszugrauen. Sie sind immer noch anklickbar. Versteckt sie mit dem Layout des Kalenders und sieht schrecklich aus.FullCalendar - Make date nicht anklickbar

  // Grey out the dates that go beyond the maximum availability date 
      var maxParsed = Date.parse(maxDate.toString()); 
      $("td[data-date]").each(function(){ 
       var date = $(this).data('date'); 
       var dateParsed = Date.parse(date); 
       if(!isNaN(dateParsed) && dateParsed > maxParsed){ 
        $(this).addClass('fc-other-month'); 
       } 
      }); 

Antwort

0

Nehmen Sie Hilfe von jQuery und return false auf click Ereignis (Ich denke, man zugewiesen es andere Klasse) auf dem Datum, das Sie wollen nicht angeklickt werden. So handeln sie nicht auf Klick ...

1

Mit CSS können Sie nur das, denke ich. Auf Ihrem css dies tun:

.fc-other-month { 
    pointer-events: none; 
    cursor: default; 
} 

Die CSS-Eigenschaft Zeiger-Ereignisse können Autoren unter kontrollieren, was Umständen (falls vorhanden) ein bestimmtes Grafikelement das Ziel Mausereignisse werden kann. Wenn diese Eigenschaft nicht angegeben ist, gelten die gleichen Eigenschaften des visiblePainted-Werts für den SVG-Inhalt.

Sie können es wissen mehr über hier: https://developer.mozilla.org/en/docs/Web/CSS/pointer-events

Wenn es nicht funktioniert, vielleicht ein Standard verhindern kann den Trick.

$('.fc-other-month').on('click', function(e) { 
    e.preventDefault(); 
    $(this).css({'pointer-events' : 'none'}); 
}); 

=== ==== bearbeiten

ich in der Dokumentation sah, haben sie eventClick. Sie können innerhalb dieser Funktion überprüfen, ob es ein "gutes Datum" ist oder nicht und dann false zurückgeben, wenn Sie nicht anklickbar sein möchten.

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

     if (1==1 || "this is a day without click feature") { //dummy code 
      return false; //prevent clickable function 
     } 

    } 
}); 

https://fullcalendar.io/docs/mouse/eventClick/

+0

Diese funktionieren nicht. Ich habe sogar versucht, alle Klassen aus dem Tagesquadrat zu entfernen (soweit ich sagen kann, dass sie nur Farbe/Position etc. kontrolliert haben) und unbind() aufgerufen, um alle Ereignisse zu lösen. Immer noch anklickbar .. – sdg91

+0

Bist du sicher? Ich habe direkt auf die Demo (devtools) 'pointer-events: none' hinzugefügt und die Nummern wurden nicht mehr anklickbar. Ich zwang auch mit js, das css hinzuzufügen. versuche es nochmal –

+0

bin mir sicher. Ich habe Ihnen trotzdem eine Stimme gegeben. – sdg91