使用removeEvents方法删除特定事件

时间:2013-02-12 21:59:38

标签: javascript jquery fullcalendar

我刚开始使用这个插件,我在删除刚刚创建的事件时遇到了一些麻烦。我可以在使用eventClick时删除所有事件,但不能删除eventClick上的特定事件。

任何帮助将不胜感激。这是我的代码。

<script type='text/javascript'>

$(document).ready(function() {

    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();

    var calendar = $('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        selectable: true,
        selectHelper: true,
        select: function(start, end, allDay) {
            var title = prompt('Trade Show Name:');
            if (title) {
                calendar.fullCalendar('renderEvent',
                    {
                        title: title,
                        start: start,
                        end: end,
                        allDay: allDay,
                        id: 12
                    },
                    true // make the event "stick"
                );
            $('input[name="startDate"]').val(start);
            }
            calendar.fullCalendar('unselect');
        },
        eventClick: function(calEvent, jsEvent, view) {
            $('#calendar').fullCalendar('removeEvents', function (calEvent) {
                return true;
            });,
        editable: true
    });

});

1 个答案:

答案 0 :(得分:25)

您可以通过两种方式执行此操作:

1)为每个活动设置唯一ID,并将这些ID传递给removeEvents来电。

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

此处_id是fullCalendar生成的唯一ID。

2)通过过滤功能删除所需的事件。

考虑到您在eventClick尝试执行此操作,我建议您使用第二个。您的案例如下:

eventClick: function (calEvent, jsEvent, view) {
    $('#calendar').fullCalendar('removeEvents', function (calEvent) {
        return true;
    });
}

此处传递给removeEvents的过滤器功能接受您要删除的事件,返回true 。由于您是在eventClick中执行此操作,因此您只需传递calEvent

希望这有帮助!