我正在使用Fullcalendar v4。当我选择一个事件时,它将显示一个模态,其中包含有关该事件的一些信息。如果我单击离开模态,它将消失。但是,如果我之后删除另一个事件,它将删除两个事件。这与我之前单击的所有事件有关。因此它可以一次删除多个事件。
当我第一次将事件插入数据库时,这很好。但是当我第二次这样做时,用于插入的脚本被调用了两次。当我插入第三个事件时,它被调用了三次。
我找不到从内存中取出旧动作的方法。我尝试调用calendar.unselect()方法,但无法正常工作。
这是我的选择和删除代码。
eventClick: function(info) {
var event = info.event;
$.ajax({
url:"select.php",
type:"POST",
data: { id: event.id },
success: function(data) {
console.log(data);
$("#exampleModal1").modal();
document.getElementById("title1").value = (data['title']);
document.getElementById("trainer1").value = (data['trainer']);
}
});
$('#deleteButton').on('click', function(){
$.ajax({
url:"delete.php",
type:"POST",
data: { id: event.id },
success: function() {
$('#exampleModal1').modal('hide');
calendar.refetchEvents()
}
});
});
$('#annuleer').on('click', function(){
calendar.unselect()
});
},
答案 0 :(得分:0)
这是因为每次eventClick发生时,您都会在删除按钮上创建新的事件处理程序。没必要
在脚本首次运行时定义一次处理程序。
在定义新的处理程序之前,要么清除所有以前的处理程序,要么。
否则,每当您单击按钮时,所有先前创建的处理程序都会同时运行,这说明了为什么您先前单击的其他事件也将被删除。