我正在使用jquery和fullcalendar安排活动。当用户选择一个时隙时,日历的右侧将显示一个表单,用户可以在其中输入其他详细信息。

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

但是,当他们错误地选择了一个时隙时,他们便能够选择一个新的时隙。但是,这会在日历上呈现第二(可能是第三,第四...)事件。

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

也许我缺少一个回调或方法,但是正如我所见,没有简单的方法来删除“未保存”事件。

下面是一些示例代码。

var fullCal ='';
$(function(){
    fullCal = $('#fullcalendar')。fullCalendar({
        //选项
        选择:SelectDate,
        eventAfterRender:function(event,element){
            //这不起作用,因为它只是将最后一个事件保留在DOM中。
            element.siblings()。remove()
        },
        viewDisplay:UnselectDate // //隐藏和清除表单,预期行为

    });

});

函数SelectDate(startDate,endDate,allDay,jsEvent,view){
    $('#BijlesForm')。show();

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

    //填表格
}

最佳答案

好吧,傻傻的我。一定是疲倦之类的东西,但是我找到了自己的方法。

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

函数SelectDate(startDate,endDate,allDay,jsEvent,view){
    $('#BijlesForm')。show();

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


这就像一个魅力。这是否也是首选的处理方式,还是应该以其他方式进行处理?

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

10-12 00:51
查看更多