2015-12-23 3 views
0

У меня есть список событий Fullcalendar и мне нужно, чтобы получить фактические HTML элементы, связанные с ними, этот код возвращает массив объектов событий:Получить HTML элемент fullcalendar для события,

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

теперь мне нужно фактическое HTML-элементы для выполнения некоторых манипуляций с ними на hover (eventrender не работает), глядя на документацию, я не смог найти какую-либо функцию для их получения.

+0

Я думаю, вы должны смотреть на 'eventRender 'function и что-то вроде этого' eventRender: function (event, element) {element.find (". fc-event-title")} 'и, самое главное, я смотрю на http://fullcalendar.io/docs/event_rendering/ eventAfterRender/ –

+1

@Programmmer Извините, я не был достаточно ясен, я обновил свой вопрос –

ответ

2

Вам все равно придется использовать eventRender. Насколько я знаю, функция getElementById типа, встроенная в fullCalendar, не существует, и, как вы, вероятно, знаете, никаких уникальных идентифицируемых свойств не добавляется к фактическому элементу. Я хотел бы добавить идентификатор во время обратного вызова:

$('#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

Вот как я сам это понял, прежде чем вы прокомментировали, еще лучший ответ. Благодаря ! –

0

Если события идентификационного набора можно добавить идентификатор или данные тега с eventRender и установите 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(); 
} 
Смежные вопросы