fullcalendar today按钮需要双击才能触发事件

时间:2018-03-06 15:49:50

标签: jquery fullcalendar fullcalendar-scheduler

我正在使用fullcalendar with month,agendaWeek和agendaDay(with resources)视图,我在agendaDay视图中遇到了Today按钮的一些问题。虽然Prev和Next按钮按预期工作,但我需要单击Today按钮两次以触发click事件,即使它只需要在其他视图中单击一次。

$('#calendar').fullCalendar({
    ...
    viewRender: function () {
        var $todayButton = $('.fc-today-button');
        $todayButton.removeClass('fc-state-disabled');
        $todayButton.prop('disabled', false);
    },
    ...
});

$(document).on('click', '.fc-prev-button, .fc-today-button, .fc-next-button', function () {
    console.log('CLICKED!');
});

更新:当我从fullcalendar设置中删除这些行时,问题就消失了:

$('#calendar').fullCalendar({
    ...
    refetchResourcesOnNavigate: true,
    resources: '/my-path/resources',
    ...
});

2 个答案:

答案 0 :(得分:0)

我通过添加自定义按钮并重现其功能解决了我的问题。这是一种解决方法,但它就像一个魅力。

$('#calendar').fullCalendar({
    customButtons: {
        todayButton: {
            text: 'today'
        }
    },
    header: {
        left: 'todayButton prev,next',
        ...
    },
    ...
});

$(document).on('click', '.fc-todayButton-button', function () {
    var todayDate = moment().format('YYYY-MM-DD');
    $('#calendar').fullCalendar('gotoDate', todayDate);

    + NEEDED ACTIONS FOR RENDERING EVENTS
});

答案 1 :(得分:0)

这似乎是一个老问题,但是如果有人仍在寻找没有解决方法的解决方案,则可以尝试使用mousedown而非click,这样可以在fullcalendar的默认操作之前触发它。

具体来说,这对我有用:

.on('mousedown', '.fc-today-button', function() {
   // something here
})