全日历重复插入和删除

时间:2019-06-29 05:59:59

标签: jquery fullcalendar

我正在使用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()
    });
},

1 个答案:

答案 0 :(得分:0)

这是因为每次eventClick发生时,您都会在删除按钮上创建新的事件处理程序。没必要

在脚本首次运行时定义一次处理程序。

在定义新的处理程序之前,要么清除所有以前的处理程序,要么。

否则,每当您单击按钮时,所有先前创建的处理程序都会同时运行,这说明了为什么您先前单击的其他事件也将被删除。