我制作了一个创建日历的 javascript 函数。要创建日历,我使用 fullcalendar。在代码中,您可以看到我进行了 ajax 调用以获取日历应包含的事件。发生的问题是,在我单击该事件后,它的一个属性变为空。单击事件以查看其详细信息后,属性“end”变为空。令我困惑的是,当我在 eventclick 方法“end”中使用 console.log“calendarevents”时,它不是空的,但是当我使用控制台记录“calEvent”并查看其源(显示源数组)并查看右侧时项目,它确实说“结束”为空。我对此完全感到困惑。我希望你们看到我做错了什么并能帮助我:)提前谢谢你们!
<script>
$(document).ready(function () {
var events = [];
$.ajax({
type: "GET",
url: "@Url.Action("GetEvents", "Agenda")",
contentType: 'application/json; charset=utf-8',
dataType: "json",
success: function (data) {
console.log(" Start Pushing " + data);
$.each(data, function (i, v) {
events.push({
title: v.Subject, //string
description: v.Description, //string
start: moment(v.StartDateTime), //datetime
end: moment(v.EndDateTime), //datetime
color: v.ThemeColor, //string
allDay: v.IsFullDay //bool
});
})
GenerateCalender(events);
},
error: function (error) {
alert('failed' + error.getAllResponseHeaders());
}
})
function GenerateCalender(calendarevents) {
$('#calender').fullCalendar('destroy');
$('#calender').fullCalendar({
aspectRatio: 1.5,
defaultDate: new Date(),
timeFormat: 'HH:mm',
header: {
left: 'prev,next today',
center: 'title',
right: 'month'
},
eventLimit: true,
eventColor: '#378006',
events: calendarevents,
eventClick: function (calEvent, jsEvent, view) {
$('#myModal #eventTitle').text(calEvent.title);
var $description = $('<div/>');
$description.append($('<p/>').html('<b>Starttijd: </b>' + calEvent.start.format("DD-MMM-YYYY HH:mm ")));
if (calEvent.end != null) {
$description.append($('<p/>').html('<b>Eindtijd: </b>' + calEvent.end.format("DD-MMM-YYYY HH:mm ")));
}
$description.append($('<p/>').html('<b>Beschrijving: </b>' + calEvent.description));
$('#myModal #pDetails').empty().html($description);
$('#myModal').modal();
}
})
}
})
</script>
最佳答案
开始值和结束值可能包括时间。显示的测试数据为 start
和 end
提供了完全相同的日期。
eventObject
的文档声明 end
是可选的,但否则“成为”一个时刻对象。
我的推论(因为没有提供最小测试用例)是 end
与 start
相同或早于 start
的日期/时间值被视为不是被提供,当没有被提供时,缺少的 end
值被转换为 null
。这将解释 end
与 start
相同时到 null
的转换。
关于javascript - 触发 OnClick 时对象属性变为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47561293/