Tôi đã thiết lập FullCalendar để chấp nhận các giọt. Nhưng đối tượng có thể kéo được, mà tôi đã xây dựng để hoàn nguyên: 'không hợp lệ' dường như không nhận ra những ngày trên FullCalendar là có thể phân hủy và quay lại. Đây là mã của tôi:Fullcalendar: đối tượng có thể kéo từ chối fullcalendar dưới dạng có thể phân đoạn mặc dù fullcalendar chấp nhận thả
<!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>
Khi tôi kéo các phần tử kéo lên lịch, yếu tố được khôi phục trở lại (gợi ý rằng ngày lịch đã không được công nhận là một droppable hợp lệ) .... nhưng thả callback là được kích hoạt với cảnh báo dự kiến (gợi ý rằng FullCalendar đã nhận dạng được khả năng kéo được là hợp lệ). Tôi hy vọng rằng các draggable không nên trở lại. Tôi đang làm hoặc mong đợi điều gì đó sai? Tôi đã tìm kiếm trên tất cả, nhưng không tìm thấy bất cứ điều gì để giải thích điều này. Mọi sự trợ giúp sẽ rất được trân trọng.
Cập nhật: Quên đề cập đến, những gì tôi đã được gọi là "fullcalendar-bundle.js" là một tập tin chứa những điều sau đây:
- jquery 1.5.2
- jquery ui 1.8.11
- fullcalendar 1.5.2 plugin
Cập nhật khác: Tôi vừa thử bản phát hành FullCalendar 1.5.3 nhưng thấy cùng một hành vi.