#javascript #html #fullcalendar #fullcalendar-5
Вопрос:
Я перехожу в fullcalendar v5 из v4 и пытаюсь настроить подсказки для любой ячейки. В v4 я использовал eventRender, такой как:
eventRender: function (eventInfo) {
let external_google_calendar_button = ""
if (eventInfo.event.url != "" amp;amp; typeof eventInfo.event.url != "undefined") {
// alert( eventInfo.event.url " eventInfo.event..url ::" ( typeof eventInfo.event.url ) )
external_google_calendar_button = '<i class='fa fa-external-link' style='color:#eaeaea;' title='Has event at Google Calendar'></i>amp;nbsp;';
}
let adTooltipHtml = '..."
let editorBtnHTML= '<button type="button" class="action_btn m-0 mr-1 p-0 px-1" @click.prevent="openAdCard( '' eventInfo.event.id '' )" title="Open ad card"> </button>'
eventInfo.el.querySelector('.fc-content').innerHTML = '<span class="flex flex-nowrap">' editorBtnHTML eventInfo.el.querySelector('.fc-content').innerHTML '</span>'
tippy(eventInfo.el, {
content: adTooltipHtml,
allowHTML: true,
animation: 'fade',
delay: 100,
duration: 100,
});
Здесь https://fullcalendar.io/docs/event-render-hooks Я прочитал :
eventContent — Ввод содержимого. Сгенерированное содержимое вставляется внутрь самой внутренней оболочки элемента события. Если она предоставляется в качестве функции обратного вызова, она вызывается каждый раз при изменении связанных данных события.
и я пытаюсь использовать событие eventContent для той же цели :
eventContent: function (eventInfo) {
console.log('eventContent eventInfo::')
console.log(eventInfo)
console.log('eventInfo.event::')
console.log(eventInfo.event)
Но мне не удалось получить доступ к элементу, чтобы установить подсказку на него.
Что я вижу в консоли браузера : https://imgur.com/a/8CCgZ4i
Как получить элемент, который я должен назначить подсказку ?
Спасибо!
Ответ №1:
Мне не удалось получить доступ к элементу
…да, потому что в соответствии с [документацией по внедрению контента] (https://fullcalendar.io/docs/content-injection) вы не получаете к нему прямого доступа. Вы просто return
вводите в него HTML, который хотите поместить, без какой-либо необходимости знать что-либо об элементе, в который вы вводите.
Однако на самом деле это не то, что вы пытаетесь здесь сделать — вы пытаетесь прикрепить подсказку ко всему элементу.
Опять же, в соответствии с документацией о крючках визуализации событий, если вместо этого вы используете eventDidMount
обратный вызов, это дает вам доступ к el
свойству в предоставленных данных, которое представляет элемент.