Я настроил FullCalendar принимать капли, что он и делает. Но перетаскиваемый объект, который я построил с помощью revert: 'invalid', похоже, не распознает даты в FullCalendar как сбрасываемые и возвращается обратно. Вот мой код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>mydrag</title>
<script src="fullcalendar-bundle.js" type="text/javascript"></script>
</head><body>
<div id="mydrag" style="width: 200px; height: 100px; background-color: red;">My Drag</div>
<div id="calendar"></div>
<script type="text/javascript">
function onExternalEventDrop(date, allDay) {
alert("Dropped on " + date + " with allDay=" + allDay);
}
$('#mydrag').each(function() {
// create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)
// it doesn't need to have a start or end
var eventObject = {
title: 'MyDrag Title'
};
// store the Event Object in the DOM element so we can get to it later
$(this).data('eventObject', eventObject);
// make the event draggable using jQuery UI
$(this).draggable({
helper: 'clone',
//revert: 'invalid',
revert: function(droppableObj) {
//if false then no socket object drop occurred.
if(droppableObj === false) {
//revert the .myselector object by returning true
alert('Not a droppable object');
return true;
}
else {
//droppableObj was returned,
//we can perform additional checks here if we like
//alert(droppableObj.attr('id')); would work fine
//return false so that the .myselector object does not revert
return false;
}
},
revertDuration: 500, // original position after the drag
start: function(e, ui) {
$(ui.helper).css('width', $(this).css('width'));
}
});
});
$('#calendar').fullCalendar({
aspectRatio: 2.25,
header: {
left: '',
center: 'title',
right: 'prev,next'
},
columnFormat: {
month: 'dddd'
},
droppable: true,
drop: onExternalEventDrop
});
</script>
</body></html>
Когда я перетаскиваю перетаскиваемый элемент в календарь, элемент возвращается обратно (предполагая, что календарная дата не была распознана как допустимая отбрасываемая) .... но обратный вызов сброса равен с ожидаемым alert (предполагающий, что FullCalendar распознал перетаскиваемый объект как действительный). Я ожидаю, что перетаскивание не должно вернуться назад. Я делаю или ожидаю что-то не так? Я искал по всему, но не нашел ничего, чтобы объяснить это. Любая помощь будет принята с благодарностью.
Обновление: забыл упомянуть, что я назвал "fullcalendar-bundle.js" - файл, содержащий следующее:
- JQuery 1.5.2
- jquery ui 1.8.11
- плагин fullcalendar 1.5.2
Еще одно обновление: я только что попробовал релиз FullCalendar 1.5.3, но вижу то же поведение.