完整日历删除外部事件



当我尝试从日历中删除外部事件时,如果我添加 3 个外部事件,则将一个拖到垃圾箱中,而不是只删除一个事件,它会删除所有事件(甚至是我正在做的单独提要中的事件。

知道为什么会这样以及如何解决吗?这是代码:

$(document).ready(function () {
    //listens for drop event
    $("#calendarTrash").droppable({
        tolerance: 'pointer',
        drop: function (event, ui) {
            var answer = confirm("Delete Event?")
            if (answer) {
                $('#calendar').fullCalendar('removeEvents', event.id);
            }
        }
    });
    /* initialize the external events  ------------*/
    $('#external-events div.external-event').each(function () {
        // create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)
        // it doesn't need to have a start or end
        var eventObject = {
            title: $.trim($(this).text()) // use the element's text as the event title
        };
        // store the Event Object in the DOM element so we can get to it later
        $(this).data('eventObject', eventObject);
        // make the event draggable using jQuery UI
        $(this).draggable({
            zIndex: 999,
            revert: true,      // will cause the event to go back to its
            revertDuration: 0  //  original position after the drag
        });
    });
});

drop函数中的event.id不引用 FullCalendar 事件。它是指刚刚触发的丢弃事件。

您将需要使用ui.draggable来访问可拖动对象 - 在本例中为FullCalendar事件。

希望这有帮助!很酷的概念顺便说一句!

更新 :检查此小提琴以进行概念验证

适用于处于相同情况的任何人,..

 eventDragStop: function(event, jsEvent, ui, view) {
                 if (x) {
                    $('#calendar').fullCalendar('removeEvents', event._id);
                      }

请注意,我使用的是event._id,x 是检查项目被拖动到哪个div 返回 true 或 false 的结果。 检查事件被放入哪个div。我还必须在全日历中更改一些代码.js 函数 eachEventElement 导致我的上述代码出现问题,所以我也更改了它。

 function eachEventElement(event, exceptElement, funcName) {
    try{
        var elements = eventElementsByID[event._id],
            i, len = elements.length;
        for (i=0; i<len; i++) {
            if (!exceptElement || elements[i][0] != exceptElement[0]) {
                elements[i][funcName]();
            }
        }
    }
    catch(err)
    {}
}

相关内容

  • 没有找到相关文章

最新更新