当我点击下一个或上一个时,为什么完整日历jquery插件无法正常工作?

时间:2014-12-24 01:25:46

标签: javascript jquery calendar fullcalendar

我正在使用完整的日历插件,因此我加载了当前月份的数据,但是当我点击上一个时,然后再次上一个上一个;我以前的事件是重复的。 例如,如果我在11月份有一个id = 1的事件,而且我在12月份,那么我去了11月;然后我看到我的事件id = 1重复。 这是我的json:

[{"id":2024,"title":"titulo0","start":"2014-12-23 19:22:17","end":"2014-12-23 19:22:17","description":"descripcion0"}]

以下是我加载日历的方式:

function loadEventos() {
    var current_url = '';
    var new_url     = '';   
    $('#calendar').fullCalendar({
        events: '/pushCombos/calendarioAction!getEventosMes.action?mes=' + 1,   
        header: {
            left: 'prev,next today',
            center: 'title',
            right: ''
        },               
        editable: true,
        droppable: true, // this allows things to be dropped onto the calendar
        drop: function() {
            // is the "remove after drop" checkbox checked?
            if ($('#drop-remove').is(':checked')) {
                // if so, remove the element from the "Draggable Events" list
                $(this).remove();
            }
        },    
        eventClick: function(calEvent, jsEvent, view) {     
            calEvent.title = "CLICKED!";
            console.log(moment(calEvent.end).format("YYYY-MM-DD"));
            editarEvento(calEvent);
            console.log(moment(calEvent.end).format("YYYY-MM-DD"));
            $('#calendar').fullCalendar('updateEvent', calEvent);
        }
    }); 
}

这是我按钮的代码:

$('.fc-button-group').children().eq(1).click(function(){
    var date = $("#calendar").fullCalendar('getDate');
    var month_int = moment(date).format("MM");
    var year_int = moment(date).format("YYYY");
    var events = {
            url: '/pushCombos/calendarioAction!getEventosMes.action?mes=1',
            data: {
                month: month_int,
                year: year_int
            }                                   
    };  
    $('#calendar').fullCalendar('removeEventSource', events);
    $('#calendar').fullCalendar('addEventSource', events);
}); 

编辑事件并重新加载时;它重新加载很好,但如果我使用下一个和前一个按钮,事件将重复。 为什么会这样? 提前谢谢!

2 个答案:

答案 0 :(得分:1)

尝试将您的活动选项更改为:

events: { 
    url: '/pushCombos/calendarioAction!getEventosMes.action',
    type: 'GET',
    data: {
        mes: 1
    },
    cache: false,
    error: function (jqXHR, textStatus, errorThrow) { //whatever you want }
}

答案 1 :(得分:0)

当您按下前一个按钮时,此插件似乎会自动执行帖子,因为它复制了事件。 我发现的另一个奇怪的事情是,它发送到服务器的月份的第一天和月份的最后一天是错误的。