获取fullcalendar事件的html元素

时间:2015-12-23 08:22:27

标签: angularjs fullcalendar

我有一个Fullcalendar事件列表,我需要获取与它们相关的实际HTML元素,此代码检索事件对象的数组:

var events = handleCalendarEvent('clientEvents', function(_event) {
                 return _event.origin === event.origin &&  isExternalEvent(_event);
             });

现在我需要实际的HTML元素来对它们做一些操作悬停(eventrender不起作用),查看文档我找不到任何函数来获取它们。

2 个答案:

答案 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();
}