我正在使用jquery和fullcalendar来安排活动 . 当用户选择时间段时,日历右侧会显示一个表单,用户可以在其中输入其他详细信息 .
使用'select'回调,我在日历上呈现临时事件,这样我的用户在填写表单时将获得视觉反馈 .
但是,当他们错误选择了时间段时,他们可以选择新的时间段 . 然而,这会在日历上呈现第二个(可能是第三个,第四个......)事件 .
我以为我可以使用'eventAfterRender(event,element)'回调到element.siblings() . remove(),但是这个失败了,因为每个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
}
1 回答
好吧,傻傻的我 . 它一定是疲劳或其他什么,但我发现如何自己做 .
我删除了eventAfterRender回调并将我的SelectDate函数更改为:
这就像一个魅力 . 这也是首选的做事方式,还是应该采取不同的方式?