Javascript fullCalendar和RangeError:超过最大调用堆栈大小

Javascript fullCalendar和RangeError:超过最大调用堆栈大小,javascript,php,jquery,events,fullcalendar,Javascript,Php,Jquery,Events,Fullcalendar,fullCalendar是一个日历插件,它接受一系列对象,并将它们转换为事件,呈现在自己的日历上。其中一个属性是eventDrop,它允许在日历上拖放事件 每当eventDrop发生时,我的函数都会执行$.post以将更改的日期写入数据库。但是,我得到了以下错误 RangeError: Maximum call stack size exceeded. Extend [jQuery] Extend [jQuery] ... Extend [jQuery] 这是我的职责 $('#taskCale

fullCalendar是一个日历插件,它接受一系列对象,并将它们转换为事件,呈现在自己的日历上。其中一个属性是eventDrop,它允许在日历上拖放事件

每当eventDrop发生时,我的函数都会执行$.post以将更改的日期写入数据库。但是,我得到了以下错误

RangeError: Maximum call stack size exceeded.
Extend [jQuery]
Extend [jQuery]
...
Extend [jQuery]
这是我的职责

$('#taskCalendar').fullCalendar({
        // put your options and callbacks here
        height: calendarheight = $(window).height() - $("#nav").height() - 140,
        events: courseTasks,
        editable: true,
        eventStartEditable: true,
        eventDurationEditable: false,
        eventClick: function(event, jsEvent, view) {
                        tbLoadData(event["id"]);
                    },
        eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {

    // Format date for DB
    var newStart = new Date(event["start"]);
    var new_due_date = newStart.format("yyyy-mm-dd HH:MM:ss");
    event["due_date"] = new_due_date;

    // Update in DB
    updateToDB(event);

}
    });

function updateToDB(data) {

    $.post("./php/controllers/retrieval.php?fn=dsb_modify_task", data, function(data,status){
        $.notify(data.task_name + " is saved\n" + data + "\n" + status , "success");
    });
}

奇怪的是,$.post在其他地方都可以使用。除了这个功能。有没有人经历过类似的事情?我没能弄清楚到底发生了什么。

我也遇到了同样的问题,但这是因为您将事件对象作为post数据发送。您必须过滤事件对象,例如,通过创建另一个对象,该对象仅具有所需的id、标题、开始、结束和全天等属性,并将其作为post数据发送

我也遇到了同样的问题,但这是因为您将事件对象作为post数据发送。您必须过滤事件对象,例如,通过创建另一个对象,该对象仅具有所需的id、标题、开始、结束和全天等属性,并将其作为post数据发送

不要发送来自eventDrop函数的事件。它有一些通过函数调用计算的值


必须创建一个新的事件对象var new_event={},并复制要发送到服务器的属性。然后您可以发送此新对象而不超过调用堆栈。

不要发送来自eventDrop函数的事件。它有一些通过函数调用计算的值


必须创建一个新的事件对象var new_event={},并复制要发送到服务器的属性。然后您可以发送此新对象而不超过调用堆栈。

问题在于delete event.source属性。只需删除它,您就可以:

  eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {
    delete event.source;
    return $.post("/edit-event/" + event.id, event, function(data) {...}}

问题在于delete event.source属性。只需删除它,您就可以:

  eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {
    delete event.source;
    return $.post("/edit-event/" + event.id, event, function(data) {...}}