javascript - 如何删除未保存的事件?

标签 javascript jquery fullcalendar

我正在使用 jquery 和 fullcalendar 来安排事件。当用户选择时间段时,日历右侧会显示一个表单,他们可以在其中输入其他详细信息。

通过“选择”回调,我在日历上呈现一个临时事件,以便我的用户在填写表单时获得视觉反馈。

但是,当他们错误选择了时间段时,他们可以选择新的时间段。然而,这会在日历上呈现第二个(可能还有第三个、第四个……)事件。

我以为我可以使用对 element.siblings().remove() 的“eventAfterRender(event, element)”回调,但这失败了,因为每个 renderEvent 都会为日历上的每个事件调用 eventAfterRender。

也许我缺少一个回调或方法,但据我所知,没有简单的方法可以删除“未保存”事件。

下面是一些示例代码。

var fullCal = '';
$(function() {
    fullCal = $('#fullcalendar').fullCalendar({
        // options
        select: SelectDate,
        eventAfterRender: function(event, element) { 
            // this does not work as it simply just keeps the last event in the DOM.
            element.siblings().remove()
        },
        viewDisplay: UnselectDate  // hides and clears the form, intended behavior

    });

});

function SelectDate(startDate, endDate, allDay, jsEvent, view) {
    $('#BijlesForm').show();

    var BijlesEvent = {start: startDate, end: endDate, title: 'Bijles', allDay: false};
    fullCal.fullCalendar('renderEvent', BijlesEvent);

    //fill the form
}

最佳答案

好吧,我真傻。一定是疲劳什么的,但我自己找到了办法。

我删除了 eventAfterRender 回调并将 SelectDate 函数更改为:

function SelectDate(startDate, endDate, allDay, jsEvent, view) {
    $('#BijlesForm').show();

    fullCal.fullCalendar( 'removeEvents', 'unsaved' )
    var BijlesEvent = {start: startDate, end: endDate, title: 'Bijles', allDay: false, id: 'unsaved'};
    fullCal.fullCalendar('renderEvent', BijlesEvent);
}

这就像一个魅力。这也是首选的做事方式,还是应该采取不同的方式?

关于javascript - 如何删除未保存的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3462439/

相关文章:

javascript - 在全日历中添加事件悬停文本

javascript - 使用分页时,只有表格第一页上的按钮是可点击的 - List.js

javascript - 是否可以将 html 内容分开以使其更容易 append ?

javascript - 在声明期间引用对象属性?

javascript - 如何汇总单选按钮选择值的总数(字母,而不是数字)?

jquery - 如何将 Play Framework 1.x 项目迁移到 2.0

javascript - Crossfilter javascript 超出最大调用堆栈大小,无 Nan

php - 如何突出显示 HTML 内容并将其保存到数据库以供将来加载

javascript - 如果部分有事件类,那么将它的 id 作为一个类添加到 body 中?

javascript - FullCalendar 不适用于 Google Cloud 环境