Je n'ai pas fait ça, donc je ne suis pas sûr que ça va marcher. Mais vous pourriez au moins essayer et voir.
Je chercherais probablement à personnaliser le viewDisplay
rappel. Il reçoit un Voir l'objet qui contient un start
la propriété, entre autres. Vous pouvez utiliser les propriétés de l'objet View pour tester la vue et la date que l'utilisateur regarde, puis effectuer des actions en fonction de celles-ci.
Je ne sais pas si fullcalendar fonctionne de cette manière, mais certains plugins interrompent une action si vous return false
à partir d'un rappel. Ainsi, vous pourriez vérifier le start
et si elle se situe en dehors de votre fourchette de mois acceptables, alors return false
pour interrompre l'action.
Si cela ne fonctionne pas, à l'intérieur de viewDisplay
vous pourriez à nouveau vérifier le start
date. Si le mois suivant ou le mois précédent sont hors de portée, vous pouvez utiliser des sélecteurs jQuery pour saisir les boutons prev/next et les désactiver. Ainsi, l'utilisateur ne pourra pas passer à un mois hors limites.
De même, si l'utilisateur se trouve dans un mois hors de la plage, vous pouvez émettre immédiatement un gotoDate
pour passer à un mois valide.
$('#calendar').fullCalendar({
viewDisplay: function(view) {
// maybe return false aborts action?
if (view.start > lastDayOfNextMonth) {
return false;
}
// or disable next button if this is last valid month
if (view.end + oneDay >= lastValidDate) {
$("#calendar #fc-button-next").attr("disabled","disabled");
}
// or gotoDate if view.start is out of range
if (view.start > lastValidDate) {
// gotoDate
}
}
});
Il y a de nombreuses façons de faire de la logique et des calculs de date, mais je pense que vous pouvez obtenir quelque chose qui fonctionne de cette façon.