单击约会时我没有得到值。 我总是收到“未定义”
我有这个Codepen https://codepen.io/egameiro/pen/Rwbgemx,您可以在其中查看结果。
有人可以告诉我我做错了吗? 非常感谢。
请参阅下面的代码。
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: ['interaction', 'dayGrid', 'timeGrid'],
defaultView: 'dayGridMonth',
locale: 'pt-br',
header: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay'
},
navLinks: true, // can click day/week names to navigate views
selectable: true,
selectHelper: true,
//selectMirror: true,
editable: true,
eventLimit: true, // allow "more" link when too many events
//events: event1,
events: [{
id: '10',
title: 'Meeting',
start: '2019-08-01T10:30:00',
end: '2019-08-01T12:30:00'
}],
eventClick: function (event) {
alert(event.id);
alert(event.title);
alert(event.start.format('DD/MM/YYYY HH:mm:ss'));
return false;
},
});
calendar.render();
答案 0 :(得分:1)
根据documentation for eventClick,回调提供的对象本身不仅仅是事件数据的副本。这是一个更复杂的对象, 其中的事件只是一个子属性。该文档说:
eventClickInfo
是具有以下属性的普通对象:
event
关联的事件对象。
el
此事件的HTML元素。
jsEvent
带有下层信息的本地JavaScript事件,例如 作为点击坐标。
view
当前视图对象。
因此,事件的数据,例如id
,title
等将是该event
子属性内的属性,而不是主对象的直接子对象。
一旦您阅读并正确理解了对象的结构,此修复程序就变得微不足道了:
eventClick: function (info) {
alert(info.event.id);
alert(info.event.title);
alert(info.event.start.format('DD/MM/YYYY HH:mm:ss'));
return false;
},
更新的CodePen:https://codepen.io/ADyson82/pen/XWraJQx
P.S。您仍然会遇到第二个问题,因为info.event.start
是本地JS日期对象,而不是momentJS对象。因此,它没有任何称为“ format()”的函数。也许您更熟悉使用momentJS的fullCalendar版本3?我将由您决定如何处理此特定细节,因为它与您的原始问题并不直接相关。