我正在使用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/