web-dev-qa-db-ja.com

フルカレンダーをドラッグ/ドロップしてイベントを更新する-Javascript

開発中のプロジェクトに Fullcalendar を使用しています...実装する機能は1つだけです。これは、既存のイベントを元の位置から別の日時にドラッグする場合です。現在のオブジェクト情報(タイトル、新しい開始時刻、古い開始時刻、ID、URLなど)を取得する方法を知りたいので、新しい情報でデータベースを更新できます... Fullcalendarオブジェクトのどのプロパティが実行しますか私が使う? dropプロパティを実装しました。

    drop  : function(date, allDay) {
            // 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 object
            var copiedEventObject   = $.extend({}, originalEventObject);
            // assign it the date that was reported
            copiedEventObject.start = date;
            copiedEventObject.allDay = allDay;

            // render the event on the calendar
            // the last `true` argument determines if the event `sticks`
            $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);

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

しかし、それは私が望んでいたことをしていません...

7
cybertextron

イベントのドラッグとサイズ変更をご覧ください http://arshaw.com/fullcalendar/docs/event_ui/

eventDropコールバックを探していると思います。

ドラッグが停止し、イベントが別の日時に移動したときにトリガーされます。

http://arshaw.com/fullcalendar/docs/event_ui/eventDrop/

Arshawのサイトからの例:

$('#calendar').fullCalendar({
    events: [
        // events here
    ],
    editable: true,
    eventDrop: function(event,dayDelta,minuteDelta,allDay,revertFunc) {

        alert(
            event.title + " was moved " +
            dayDelta + " days and " +
            minuteDelta + " minutes."
        );

        if (allDay) {
            alert("Event is now all-day");
        }else{
            alert("Event has a time-of-day");
        }

        if (!confirm("Are you sure about this change?")) {
            revertFunc();
        }

    }
});
14
MarCrazyness