2016-01-22 16 views
1

У меня есть проблема перетащить элемент (его не событие, его имя сотрудника) на событие. enter image description herejquery fullcalendar drop non event on event

Я хочу перетащить сотрудника (см. Рисунок) на мероприятие, но «работником» является нет события. Я использую jquery UI draggable/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> 

После удаления работника на событии, мне нужно соответствующие данные события (событие-идентификатор и т.д.), чтобы сохранить процесс в БД. Но jquery fullcalendars «drop (callback)» предоставляет только дату, когда элемент был удален.

ответ

1

Вы можете использовать eventAfterRender для добавления пользовательского идентификатора к элементу dom с использованием свойств данных. Затем возьмите идентификатор после drop (event.target), обновите событие в 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

Тысяча благодарностей! Он работает –

+0

другой вопрос: падение на перекрывающиеся события вызовет падение дважды, - для фона и переднего плана –

+0

@Julian - я думаю, что это немного сложно там, потому что «жадный» вариант в инициализации с возможностью сбрасывания, что бы мы обычно использовать только для запуска самого большого объекта, не работает с братьями и сестрами (которые перекрывают события fullCalendar.) Я бы предложил изучить предложения в этом посте http://stackoverflow.com/questions/12724388. Кроме того, вы можете отключить перекрытие в fullCalendar и полностью избежать проблемы. – scottysmalls