【问题标题】:fullcalendar - moved event again restore to old date when click prev/nextfullcalendar - 单击上一个/下一个时,移动的事件再次恢复到旧日期
【发布时间】:2015-05-04 10:28:20
【问题描述】:

我在我的应用程序中使用 fullcalendar(v2.0.0)。从数据库和用户显示的所有事件都可以拖放和更新事件。一切正常,除了 点击 fullcalendar 的下一个/上一个按钮时,丢弃的事件再次进入旧日期

检查我的小提琴http://jsfiddle.net/Manivasagam/3E8nk/1021/

$('#calendar').fullCalendar({
events:"/FullcalendarProject/FullCalendarChecking" 
  // my events will be like this from DB [{title: 'Plants',start: '2015-05-18'}, {title: 'Animals',start: '2015-05-23'}]

});

确切的问题是,如果我将 Plants 事件拖放到 2015-05-20 然后它移动到 2015-05-20 但如果我单击下一个/上一个然后再次移动的事件返回至 2015 年 5 月 18 日。

为什么会这样?如何解决这个问题?

【问题讨论】:

    标签: javascript jquery fullcalendar


    【解决方案1】:

    您需要编写日历的删除事件回调,您将在其中将新日期发送到服务器,服务器将更新数据库中的事件日期,以便下次更新日期如下

    $('#calendar').fullCalendar({
    events:"/FullcalendarProject/FullCalendarChecking" ,
      // my events will be like this from DB [{title: 'Plants',start: '2015-05-18'}, {title: 'Animals',start: '2015-05-23'}]
    eventDrop: function (event, delta, minuteDelta, allDay, revertFunc) {
                    console.log(event);
    //asking for confirmation from user using $.prompt you can skip and send direct ajax
                    $.prompt("Are you sure you want to move the events "+delta+" days?", {
                        title: "Are you Sure?",
                        buttons: { "Yes": true, "No": false },
                        submit: function (e, v, m, f) {
                            // use e.preventDefault() to prevent closing when needed or return false.
                            // e.preventDefault();
                            if (v)
                            {
                                $.ajax({
                                    url: "/modules/crm_events/support/changeEventDate.php",
                                    data: { id: event.id, changeDays: delta , table:event.className[2] , part:event.part },
                                    type: "GET",
                                    dataType: "json",
                                }).done(function (data) {
    
                                });
                            }
                            else
                            {
                                revertFunc();
                            }
                        }
                    });
                },
    });
    

    【讨论】:

    • 所以点击下一个/上一个时页面会重新加载?
    • 不,当您单击下一步时它不会重新加载页面,然后它会向日历事件属性中的指定 url 发送获取请求并传递当前呈现的开始和结束日期的时间戳
    • 我知道每次点击上一个/下一个时,事件函数都会调用。我说的对吗?
    • 如果它的回调则正确,如果它的 url 则调用它,然后它会去获取事件.. :)
    • 我使用的方式相同,但我无法获得正确的输出检查这个stackoverflow.com/questions/30029194/…我希望你能回答这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多