Я хотел бы добавить 1 час до даты начала мероприятия и установить дату окончания. Всякий раз, когда я пытаюсь использовать функцию добавления минуты, я хотел бы получить:Как добавить 1 час в дату окончания события динамически?
Uncaught TypeError: Cannot read property '_calendar' of undefined at D (moment.min.js:28) at e (jquery.min.js:4) at xb (jquery.min.js:4) at xb (jquery.min.js:4) at xb (jquery.min.js:4) at Function.r.param (jquery.min.js:4) at Function.ajax (jquery.min.js:4) at HTMLButtonElement. ((index):385) at HTMLButtonElement.dispatch (jquery.min.js:3) at HTMLButtonElement.q.handle (jquery.min.js:3)
Ниже мой код:
function loadCalendar(batch) {
calendar.fullCalendar({
defaultDate: moment("2016-12-11"),
utc: true,
header: false,
columnFormat: 'dddd',
allDaySlot: false,
hiddenDays: [0],
defaultView: 'agendaWeek',
minTime: '07:00:00',
maxTime: '21:00:00',
editable: true,
droppable: true,
lazyFetching: true,
eventOverlap: false,
events: {
editable: true
},
drop: function(event, ui) {
classname = $(this).attr("id");
},
eventReceive: function(event) {
// classname = $(this).attr("id");
console.log(classname);
$("#new-subj").modal("show");
$("#save-subj").click(function() {
// var batch = $(".course").text();
var subjcode = $("#subjcode").val();
var start = event.start.format("YYYY-MM-DD[T]HH:mm:SS+08:00");
var end = moment(start).add(1, "hour");
var prof = $("#prof").val();
var profname = $("#prof option:selected").text();
var room = $("#room").val();
var roomname = $("#room option:selected").text();
var course = $("#course-hidden").val();
var yrlvl = $("#yrlvl-hidden").val();
// var classname = $(this).css("background-color");
$.ajax({
url: eventurl,
type: "POST",
data: {
batch: batch,
subjcode: subjcode,
prof: prof,
start: start,
end: end,
room: room,
course: course,
yrlvl: yrlvl,
classname: classname,
action: "add"
},
dataType: "json",
success: function(data) {
event.id = data.eventid;
console.log(data.eventid);
event.title = subjcode;
event.description = profname + "<br/>" + roomname;
event.className = classname;
calendar.fullCalendar('updateEvent', event);
$("select").prop("selectedIndex", 0);
},
error: function(e){
console.log("adding event: "+e.responseText);
}
});
calendar.fullCalendar('updateEvent', event);
$("#new-subj").modal("hide");
});
$("#cancel-subj").click(function() {
calendar.fullCalendar('removeEvents', event.id);
getEvents();
});
},
eventDragStop: function (event, jsEvent, ui, view) {
if (isElemOverDiv(jsEvent)) {
swal({
title: "Are you sure you want to delete this subject?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "",
confirmButtonText: "Delete",
closeOnConfirm: false
},
function(isConfirm) {
if (isConfirm) {
$.ajax({
url: eventurl,
type: "POST",
data: {
id: event.id,
action: "delete"
},
dataType: "json",
success: function(data) {
console.log(data);
if (data.status == "success") {
console.log(event.id);
setTimeout(function(){
calendar.fullCalendar('removeEvents', event.id);
getEvents();
swal("Deleted", "The subject has been deleted.", "success");
}, 2000);
}
},
error: function(e){
console.log('Error processing your request: '+e.responseText);
}
});
}
});
}
}
});
}
Проблема должна быть с "event.start". Проверьте в отладчике значение «event.start», а затем значение переменной «start». Проще всего проверить это прямо в консоли отладчика. – Karl
Я пробовал, но у меня все еще есть ошибка. Но когда я изменяю «var end = moment (start) .add (1,« hour »),' to 'var end = event.start;', ошибка исчезает. – devgirl
проверьте также, доступен ли момент и какой. Это также момент, который поставляется с fullcalendar. Если вы предоставите скрипку, я смогу сделать больше исследований. Я сделал скрипку на данный момент, и она отлично работает – Karl