2013-10-17 67 views
7

我正在使用Fullcalendar作爲正在開發的項目......我只剩下一個要實現的功能,即當現有事件從原始位置拖動時到另一個時間或日期。我想知道如何獲取當前的對象信息(標題,新的開始時間,舊的開始時間,id,url等),因此我可以用更新的信息更新數據庫...... Fullcalendar對象的屬性我用? 我實現了drop屬性;通過拖放fullcalendar-Javascript來更新事件

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(); 
      } 
    }, 

,但它沒有做什麼,我想......

回答

13

看看事件拖動和調整http://arshaw.com/fullcalendar/docs/event_ui/

我想你在找什麼的eventDrop回調。

當拖動停止並且事件已移動到不同的日期/時間的 時觸發。

從arshaw的網站http://arshaw.com/fullcalendar/docs/event_ui/eventDrop/

例子:

$('#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(); 
     } 

    } 
}); 
+0

嘿,我認爲eventDrop()當你拖着外部事件到日曆不叫。而drop()函數。在我的情況下,外部事件下降到日曆(在資源視圖),但它不會顯示在那裏,但是當我更改月和周視圖,並顯示相同的外部事件。所以我很困惑,我如何在ResourceView上帶來同樣的結果。 –

+0

有趣的@AffanPathan,你可以在這裏添加一個小提琴與你的問題? – MarCrazyness

+0

我已經錯過了資源[]屬性,一旦我修好了,現在它的工作正常。 :) –