我有一个Fullcalendar事件列表,我需要获取与它们相关的实际HTML元素,此代码检索事件对象的数组:
var events = handleCalendarEvent('clientEvents', function(_event) {
return _event.origin === event.origin && isExternalEvent(_event);
});
现在我需要实际的HTML元素来对它们做一些操作悬停(eventrender不起作用),查看文档我找不到任何函数来获取它们。
答案 0 :(得分:5)
您可能仍需要使用eventRender。据我所知,fullCalendar中没有内置的getElementById类型函数,正如您可能知道的那样,实际元素中没有添加唯一可识别的属性。我会在回调期间添加一个id:
$('#calendar').fullCalendar({
...
eventRender: function (event, element) {
element.data('event-id',event.id);
},
...
})
稍后,当您获取事件对象数组时,可以使用jQuery来查找它们:
var events = handleCalendarEvent('clientEvents', function(_event) {
return _event.origin === event.origin && isExternalEvent(_event);
});
var first_event = $("#calendar").find('[data-event-id=' + events[0].id + ']');
答案 1 :(得分:1)
如果您的事件设置了id,您可以使用eventRender添加id或数据标签并将event.id设置到那里,然后eventMouseover您可以根据event.id找到该元素。
eventRender: function (event, element, view) {
/* The anchor tag is where the id gets set */
element.attr('id', 'event-id-' + event.id);
},
eventMouseover: function (event, jsEvent, view) {
var $html = $('#event-id-' + event.id).html();
}