7

我刚开始使用这个插件,我在删除我刚刚创建的事件时遇到了一些问题。使用 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
    });

});
4

1 回答 1

27

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

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

希望这可以帮助!

于 2013-02-13T04:57:09.710 回答