【问题标题】:dragging and dropping date not working right in fullcalendar拖放日期在全日历中无法正常工作
【发布时间】:2015-04-25 06:47:04
【问题描述】:

我正在为我的应用程序使用 jquery fullcalendar。我正在尝试验证不能将事件拖放到过去的日期。这是我的代码,

$(document).ready(function() {
        var dragfingDate;

        $('#calendar').fullCalendar({
            //defaultDate: '2015-02-12',
            editable: true,
            eventLimit: true, // allow "more" link when too many events
            events: [  here my events ],
 eventDrop : function(event,revertFunc)
            {
                //var moment = $('#calendar').fullCalendar('getDate');
                //alert("The current date of the calendar is " + moment.format("YYYY-MM-DD"));

                var dropedDate = event.start.format("YYYY-MM-DD");
                alert(dropedDate);
                var todayDate = $('#calendar').fullCalendar('getDate');
                var today_newformatDate = todayDate.format("YYYY-MM-DD");
                alert(today_newformatDate);
                if(dropedDate < today_newformatDate)
                {
                    alert("can not move previous dates.");
                    revertFunc();

                    //$('#calendar').fullCalendar('selectable', false);

                }
                else
                {
                    //alert("can move to next dates.");
                    var r = confirm("Are sure want to shift?");
                    if(r == true)
                    {
                        // here is my ajax code to updte DB
                        //alert("droped "+event.title +"on date of "+event.start.format("YYYY-MM-DD"));
                    }
                    else
                    {
                        revertFunc();
                    }

                }

            }
});

但此代码无法正常工作。当我第一次拖放时,例如 2015-04-27 到 2015-04-20,它会显示“无法移动以前的日期”的警报。然后如果再次将相同的日期拖放到某个日期意味着该删除的日期将与我放置日期的位置不同(例如,如果我将 2015-04-28 拖放到 2015-04-15 但删除的日期显示为 2015- 04-20,15 或其他日期)。

更新:我发现当调用该 revertfunc 时,无论光标在日期上移动时,它都显示为可选择的。当单击可选择保留某个日期并分配给最近拖动的日期的日历时。

为什么会发生这种情况以及如何解决?

【问题讨论】:

    标签: jquery drag-and-drop fullcalendar


    【解决方案1】:

    问题在于您的 eventDrop 函数尝试将您的函数替换为:

    eventDrop: function( event, delta, revertFunc, jsEvent, ui, view ) {
        // add your logic here 
    }
    

    注意:revertFuncthird 函数的third 参数,请查看文档here

    尽管我想建议的最佳解决方案是,对传递给日历的数组进行简单更改,即editable: false,下面是代码。

    $('#calendar').fullCalendar({
        events: [
           {
              title  : 'event1',
              start  : '2010-01-09T12:30:00',
              end    : '2010-01-09T12:40:00',
              editable: false //set it to true if you want to make it editable
           }
        ]
    });
    

    注意:在上述情况下,您必须事先操作传递给日历的事件数组。

    【讨论】:

    • no..实际上我的活动日期应该是可编辑的。检查我的小提琴jsfiddle.net/Manivasagam/3E8nk/1006
    • 我的条件是拖放,如果放在日期 > 当前日期,否则执行 revertFunc(返回),但对我来说不起作用
    • 我不认为我让您了解这个问题。如果你来teamviewer,那么很容易理解我的问题。我应该解决这个问题,但我不知道除了通过teamviewer沟通之外的方法。
    • 希望你能帮帮我。你能通过teamviewer解决这个问题吗?
    • 如果仍然存在问题,请尝试更改版本并包含新版本v2.3.1 或大于v2.0.0 的文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 2013-05-28
    相关资源
    最近更新 更多