【问题标题】:FullCalendar eventDragStart ui is emptyFullCalendar eventDragStart ui 为空
【发布时间】:2014-09-02 15:40:52
【问题描述】:

我用 eventStartDrag 设置了一个完整的日历。当我在事件中记录 UI 变量时,它似乎是空的。有什么理由吗?其他传入的变量都ok。

var date = new Date(); var d = date.getDate(); var m = date.getMonth(); var y = date.getFullYear();

        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            defaultView: 'agendaWeek',
            editable: true,
            droppable: true, // this allows things to be dropped onto the calendar !!!
            drop: function (date) { // this function is called when something is dropped
                // retrieve the dropped element's stored Event Object
                var originalEventObject = $(this).data('eventObject');

                // we need to copy it, so that multiple events don't have a reference to the same object
                var copiedEventObject = $.extend({}, originalEventObject);

                // assign it the date that was reported
                copiedEventObject.start = date;

                $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);

                // is the "remove after drop" checkbox checked?
                if ($('#drop-remove').is(':checked')) {
                    // if so, remove the element from the "Draggable Events" list
                    $(this).remove();
                }

            },
            eventResize: function (event, delta, revertFunc) {
                event.isChanged = true;
            },
            eventDrop: function (event, delta, revertFunc) {
                event.isChanged = true;
            },
            eventDragStart: function (event, jsEvent, ui, view) {
                console.log(event);
                console.log(jsEvent);
                console.log(ui);
                console.log(view);
                var dragged = [ui.helper[0], event];
            },
            events: [
                {% for timeEntry in timeEntries %}
                {
                    id: {{ timeEntry.id }},
                    title: '{{ timeEntry.task.description }}',
                    taskId: '{{ timeEntry.task.id }}',
                    start: '{{ timeEntry.startTime|date("Y-m-d\\TH:i:s") }}',
                    {% if timeEntry.stopTime is not null %}
                    end: '{{ timeEntry.stopTime|date("Y-m-d\\TH:i:s") }}',
                    {% else %}
                    end: null,
                    {% endif %}
                    isNew: false,
                    isChanged: false
                },
                {% endfor %}
            ]
        });

【问题讨论】:

    标签: jquery-ui events fullcalendar


    【解决方案1】:

    从 2.1.1 版开始,jQueryUI 不再是依赖项(请参阅release notes)。

    由于方法签名保持不变,你会在源代码中看到它总是传递一个空对象:

    //(... fullCalendar 2.1.1 source code ...)
    // line 4544
    dragStart: function(ev) {
        _this.triggerSegMouseout(seg, ev); // ensure a mouseout on the manipulated event has been reported
        _this.isDraggingSeg = true;
        view.hideEvent(event); // hide all event segments. our mouseFollower will take over
        view.trigger('eventDragStart', el[0], event, ev, {}); // last argument is jqui dummy
    },
    

    eventDragStart 被触发时,最后一个参数是 jqui dummy

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2017-08-18
      • 1970-01-01
      相关资源
      最近更新 更多