2016-01-22 338 views
1

我無法在一個事件上拖放一個項目(它不是一個事件,它的員工名稱)。 enter image description herejquery fullcalendar drop non event on event

我想在一個事件上拖動一個員工(見圖片),但'員工'是 沒有事件。我正在使用jQuery UI可拖拽/ droppable。

<script> 
var calendar; 
$(document).ready(function() { 
    calendar = $('#calendar').fullCalendar({ 
    droppable: true, 
    dropAccept: '.employeeItem',  
    drop: function(date, allDay, jsEvent, ui) { 

} 
}); 
}); 

$(function() { 
$(".employeeItem").draggable(); 
$(".fc-event").droppable({ 
    drop: function(event, ui) { 

    } 
}); 
}); 
</script> 

<?php for($i=1;$i<=30;$i++){?> 
    <div>Simpson, Homer<br> 
     10/14 h 
    </div> 
<?php }?> 

<div id='calendar'></div> 

上的事件滴加僱員後,我需要相應 事件數據(事件ID等)到處理保存到分貝。但jquery fullcalendars「drop(callback)」僅提供該項目被放置的日期。

回答

1

您可以使用eventAfterRender使用數據屬性將自定義ID添加到dom元素。然後在drop(event.target)之後獲取id,更新db中的事件,然後刷新dataSource。

Fiddle

$(document).ready(function() { 

    $('#calendar').fullCalendar({ 
     ... 
     eventAfterRender: function(event, element){ 
      element.data('myId',event.myId); 
      $(element).droppable({ 
       drop: function(event, ui) { 
        var dragged = ui.draggable; 
        var targetId = $(event.target).data('myId'); 
       } 
      }); 
     } 
     ... 
    }); 
}); 

$(document).ready(function() { 
    $(".employeeItem").draggable(); 
}); 
+0

000的感謝!它的工作原理 –

+0

另一個問題:放棄重疊事件將觸發兩次下降 - 對於後臺和前臺事件 –

+0

@Julian - 我認爲它有點棘手,因爲可以初始化的'貪婪'選項,我們通常會使用只觸發最上面的對象,不適用於兄弟姐妹(它重疊fullCalendar事件)。我會建議探索這篇文章中的建議http://stackoverflow.com/questions/12724388。或者,您可以關閉fullCalendar中的重疊並完全避免該問題。 – scottysmalls