javascript - 如何在全日历中从上个月和下个月开始不可点击日期?

标签 javascript fullcalendar

在 Fullcalendar 中,我想要不可点击或取消选择当月之外的日期。 例如,这些日子可能是上个月的日子或下个月的日子。谁能告诉我如何使其不可点击或取消选择? (当用户点击那些日子时,会注意到发生的情况)

我尝试过:

.fc-other-month  {visibility: hidden;}

但它只是隐藏了它们......

这是我的代码:

var d = new Date();

var calendar = $('#calendar').fullCalendar({
    eventSources: [{
        url: 'show_records.php',
        color: 'green',
    }],
    events: [{
            "title": "Capodanno",
            "start": d.getFullYear()+"-01-01"
        },{
            "title": "Epifania",
            "start": d.getFullYear()+"-01-06"
        },{
            "title": "Festa Liberazione",
            "start": d.getFullYear()+"-04-25"
        },{
            "title": "Festa Lavoratori",
            "start": d.getFullYear()+"-05-01"
        },{
            "title": "Festa Repubblicstarta",
            "start": d.getFullYear()+"-06-02"
        },{
            "title": "SS Pietro e Paulo",
            "start": d.getFullYear()+"-06-29"
        },{
            "title": "Ferragosto",
            "start": d.getFullYear()+"-08-15"
        },{
            "title": "Santi",
            "start": d.getFullYear()+"-11-01"
        },{
            "title": "Immacolata",
            "start": d.getFullYear()+"-12-08"
        },{
            "title": "Natale",
            "start": d.getFullYear()+"-12-25"
        },{
            "title": "S.Stefano",
            "start": d.getFullYear()+"-12-28"
    }],

    eventColor: 'red',
    // Header of calander  
    header: {
        left: 'prev',
        center: 'title',
        right: 'next',
    },
    defaultView: 'month',
    // Italian languge 
    lang: 'it',
    // Saiz 
    height: 600,
    dayClick: function(date, jsEvent, view) {
        // Changing BG color
        $(this).css('background-color', 'green');
        //Create modal here
        $('#myModal').modal();
        // Show Date in SPAN
        $('#spnDate').html(date.format('DD-MM-YYYY'));
        // Put Date value in a variable 
        $('#date').attr('value', date.format('DD-MM-YYYY'));
    },
    editable: true,
});

最佳答案

您可以检查您单击的日期是否不在当前事件月份,您可以通过向回调添加简单的验证来实现此目的:

var view = $('#calendar').fullCalendar( 'getView' );

return date.month() == view.intervalStart.month();

示例:

dayClick: function( date, jsEvent, view ) { 
      if date.month() !=  view.intervalStart.month() {
          //do nothing..
      }
}

回调通常将您单击的日期或事件以及 View 作为参数。

有关 View 的信息:http://fullcalendar.io/docs/views/View_Object/ 或:http://fullcalendar.io/docs/

关于javascript - 如何在全日历中从上个月和下个月开始不可点击日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26483551/

相关文章:

javascript - 如何以列标题为键获取json格式的handson表数据

javascript - 如何在多个位置绘制 svg,在另一个 svg 图像之上

javascript - 如何在 monthView 上隐藏事件?

angular - 使用带 Angular 4 的全日历时不显示事件

FullCalendar v2 : Selecting day in month returns incorrect start or end date

javascript - Soundcloud 嵌入流 URL( Node 、JSON)

javascript - 如何通过单击复选框启用输入

JavaScript 函数未完成

javascript - 如何在单击按钮时从全日历中删除事件?

javascript - 从 karma 测试访问projectDir?