[英]Fullcalendar eventDrop callback function Fails from All-Day Event to Time Limited Event
I have a eventDrop callback function that works when going from a time-limited event to time-limited event but does not work when going from an all-day event to a time-limited event. 我有一个eventDrop回调函数,该函数在从限时事件变为限时事件时有效,但在从全天事件变为限时事件时不起作用。 Can anyone tell me what I am doing wrong or is this a bug to be reported.
谁能告诉我我做错了什么,或者这是一个要报告的错误。 I am not experienced enough with fullcalendar to determine which one it is.
我对全日历没有足够的经验来确定它是哪一个。
See JS Bin link below for javascript and example of problem. 有关JavaScript和问题示例,请参见下面的JS Bin链接。
http://jsbin.com/taxopo/edit?js,output http://jsbin.com/taxopo/edit?js,输出
$(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
eventLimit: true, // allow "more" link when too many events
eventDrop: function(event, delta, revertFunc, jsEvent, ui, view) {event_drop(event, delta, revertFunc);},
events: [{
id: 'SCH1014',
title: 'Mcm Plastics, Inc.',
start: '2016-12-15',
end: '2016-12-16',
allDay: true,
className: 'qtip-tip',
color: '#76819D',
description: 'Proposed Service Pending Email Request'
},/*...*/]
});
});
function event_drop(event, delta, revertFunc) {
var start = jQuery.fullCalendar.moment(event.start.format('MM-DD-YYYY'));
var end = jQuery.fullCalendar.moment(event.end.format('MM-DD-YYYY'));
var myStartDate = start.format('MM-DD-YYYY');
var myEndDate = end.format('MM-DD-YYYY');
var id = event.id;
var myEvent = [];
if (start.hasTime()) {
var myStartTime = start.format('hh:mm:ss A');
var myEndTime = end.format('hh:mm:ss A');
myEvent.push(id, myStartDate, myEndDate, myStartTime, myEndTime);
} else {
myEvent.push(id, myStartDate, myEndDate);
}
var data = '__myEvent='+myEvent;
alert(data);
}
event.end
is not always set and needs to be checked before you try and use it event.end
并非始终设置,需要在使用前进行检查
Something like the following should work: 类似于以下内容的东西应该起作用:
function event_drop(event, delta, revertFunc) {
var noEnd = false;
if(event.end == null){
noEnd = true;
}
var start = jQuery.fullCalendar.moment(event.start.format('MM-DD-YYYY'));
var end = noEnd || jQuery.fullCalendar.moment(event.end.format('MM-DD-YYYY'));
var myStartDate = start.format('MM-DD-YYYY');
var myEndDate = noEnd || end.format('MM-DD-YYYY');
var id = event.id;
var myEvent = [];
if (start.hasTime()) {
var myStartTime = start.format('hh:mm:ss A');
var myEndTime = noEnd || end.format('hh:mm:ss A');
myEvent.push(id, myStartDate, myEndDate, myStartTime, myEndTime);
} else {
myEvent.push(id, myStartDate, myEndDate);
}
var data = '__myEvent='+myEvent; // I have no idea what this is achieving
alert(data);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.