从日历中删除所有事件
remove all events from calendar
我正在尝试从日历中删除所有活动。我使用完整的日历库 v4。呈现日历后,我的所有事件都添加到日历中 ajax。
在我的脚本中,我有创建一个空日历的代码:
var calendar = new FullCalendar.Calendar(document.getElementById('calendar'), {
themeSystem: 'bootstrap4',
headerToolbar: {
left: 'prev next today',
center: 'title',
right: 'dayGridDay dayGridWeek dayGridMonth listMonth'
},
locale: config.lang,
initialView: 'dayGridMonth',
displayEventTime: true,
events: dbEvents,
eventClick: function(event, jsEvent, view) {
$('#alertNotify').html(alert[event]);
$('#alertNotify').notifyModal({
duration : -1,
placement : 'center',
type : alert['type'],
icon : true,
onLoad : function(el) {},
onClose : function(el) {}
});
},
}); // end calendar object
在我使用此功能从一个日期加载我的所有事件后:
function loadEvents(){
var url = new URL(window.location.href);
var day = url.searchParams.get("day");
var month = url.searchParams.get("month");
var year = url.searchParams.get("year");
console.log(day + "/" + month + "/" + year);
$.ajax({
url : 'loadEvents',
type : 'get',
dataType: 'json',
data : 'json',
success : function(data) {
dbEvents = data;
calendar.addEventSource(dbEvents); // add events with ajax data from array;
dbEvents = [];
},
failure: function() {
alert('there was an error while fetching events!');
},
color: 'red', // a non-ajax option
textColor: 'white', // a non-ajax option
});
}
我正在使用 dbEvents,它是一个数组,用于从日期开始加载事件。
现在我不使用日期的加载事件,因为我想删除之前的所有事件。为什么我要删除我的所有事件?我怎么说,我用 ajax 加载我的所有事件,但如果我移动到下个月或第二天,我只想加载属于日期的事件。在我的控制器中,我将使用这个日期进行查询。为什么我要这样做?为了不让我的网站超载。我认为我应该在包含新闻事件之前删除所有事件。事实上,我在网站上看到我可以使用这个:
$("#calendar").fullCalendar('removeEvents');
但我的控制台出现此错误:
$(...).fullCalendar is not a function
at calendarDate (calendarEvents.js:110)
at HTMLButtonElement.<anonymous> (calendarEvents.js:53)
at HTMLButtonElement.dispatch (jquery.min.js:2)
at HTMLButtonElement.v.handle (jquery.min.js:2)
另外,我读到我可以使用这个:
calendar.remove();
但删除我收到此错误:
Uncaught TypeError: Cannot read property 'remove' of null
我也在读到我可以使用这个:
calendar.fullCalendar('removeEvents');
但是 return 我的第一个错误...
我的问题是:如何从日历中删除所有活动??也许我很困惑,我会以另一种形式来做,但我不知道。
我忘记了我的框架,它是 Laravel 5.8
感谢您的所有帮助和回复。我是来学习的
你试过这个方法了吗
var listEvent = calendar.getEvents();
listEvent.forEach(event => {
event.remove()
});
我正在尝试从日历中删除所有活动。我使用完整的日历库 v4。呈现日历后,我的所有事件都添加到日历中 ajax。
在我的脚本中,我有创建一个空日历的代码:
var calendar = new FullCalendar.Calendar(document.getElementById('calendar'), {
themeSystem: 'bootstrap4',
headerToolbar: {
left: 'prev next today',
center: 'title',
right: 'dayGridDay dayGridWeek dayGridMonth listMonth'
},
locale: config.lang,
initialView: 'dayGridMonth',
displayEventTime: true,
events: dbEvents,
eventClick: function(event, jsEvent, view) {
$('#alertNotify').html(alert[event]);
$('#alertNotify').notifyModal({
duration : -1,
placement : 'center',
type : alert['type'],
icon : true,
onLoad : function(el) {},
onClose : function(el) {}
});
},
}); // end calendar object
在我使用此功能从一个日期加载我的所有事件后:
function loadEvents(){
var url = new URL(window.location.href);
var day = url.searchParams.get("day");
var month = url.searchParams.get("month");
var year = url.searchParams.get("year");
console.log(day + "/" + month + "/" + year);
$.ajax({
url : 'loadEvents',
type : 'get',
dataType: 'json',
data : 'json',
success : function(data) {
dbEvents = data;
calendar.addEventSource(dbEvents); // add events with ajax data from array;
dbEvents = [];
},
failure: function() {
alert('there was an error while fetching events!');
},
color: 'red', // a non-ajax option
textColor: 'white', // a non-ajax option
});
}
我正在使用 dbEvents,它是一个数组,用于从日期开始加载事件。
现在我不使用日期的加载事件,因为我想删除之前的所有事件。为什么我要删除我的所有事件?我怎么说,我用 ajax 加载我的所有事件,但如果我移动到下个月或第二天,我只想加载属于日期的事件。在我的控制器中,我将使用这个日期进行查询。为什么我要这样做?为了不让我的网站超载。我认为我应该在包含新闻事件之前删除所有事件。事实上,我在网站上看到我可以使用这个:
$("#calendar").fullCalendar('removeEvents');
但我的控制台出现此错误:
$(...).fullCalendar is not a function
at calendarDate (calendarEvents.js:110)
at HTMLButtonElement.<anonymous> (calendarEvents.js:53)
at HTMLButtonElement.dispatch (jquery.min.js:2)
at HTMLButtonElement.v.handle (jquery.min.js:2)
另外,我读到我可以使用这个:
calendar.remove();
但删除我收到此错误:
Uncaught TypeError: Cannot read property 'remove' of null
我也在读到我可以使用这个:
calendar.fullCalendar('removeEvents');
但是 return 我的第一个错误...
我的问题是:如何从日历中删除所有活动??也许我很困惑,我会以另一种形式来做,但我不知道。
我忘记了我的框架,它是 Laravel 5.8
感谢您的所有帮助和回复。我是来学习的
你试过这个方法了吗
var listEvent = calendar.getEvents();
listEvent.forEach(event => {
event.remove()
});