我目前正在尝试在background
触发 DayClick 时获取事件(类型)。由于背景类型,我无法使用 EventClick 触发器(我不知道为什么,但在我的情况下什么也没发生,FullCalendar 出了什么问题?)。
这是我的 init 代码:
$('#calendarRoomUnavailable').fullCalendar({
height: 'auto',
header: {
left : '',
center: 'title',
right: ''
},
defaultView: 'year',
defaultDate: getDateFilterRoomAvailable(),
lang: 'fr',
firstDay: 1,
columnFormat: 'ddd D/M',
selectable : false,
weekends: false,
navLinks : false,
events: basePath + '/agenda/datalist/room_available',
viewRender: function (view, element) {
},
eventRender: function(event,element){
if(event.rendering === "background"){
element.data(event); //store the event data inside the element
}
},
dayClick: function (date, jsEvent, view) {
console.log(jsEvent)
},
editable:false,
});
我想要的是:
当我点击一天时,我想要获取与当天相关的事件(背景)(我的日历中每天只有一个事件)。
目前我正在使用 eventRender + dayClick :
eventRender: function(event,element){
if(event.rendering === "background"){
element.data(event); //store the event data inside the element
}
},
dayClick: function (date, jsEvent, view) {
console.log(jsEvent)
[...]
}
使用 DayClick 上的 console.log JSEvent,我知道它让我错了<td>
:
Img
因为,当我尝试<td>
使用类来获取目标时fc-bgevent
,什么也没有发生:
dayClick: function (date, jsEvent, view) {
console.log(jsEvent)
if (jsEvent.target.classList.contains('fc-bgevent')) {
console.log($(jsEvent.target).data());
}
如果我尝试访问target
由获取的 HTML 元素jsEvent
,它会向我显示错误<td>
,我对此无能为力...
有人知道如何绕过它吗?
谢谢 !
从日期获取一个事件的代码:
function getEventFromDate(date) {
var allEvents = [];
allEvents = $('#calendarRoomUnavailable').fullCalendar('clientEvents');
var event = $.grep(allEvents, function (v) {
return +v.start === +date;
});
if (event.length > 0) {
return event[0];
} else {
return null;
}
}