Я использую последнюю версию FullCalendar V4, и в моем случае я не могу добавить дополнительные поля, такие как описание и примечания. Я использую дневную сетку и хочу, чтобы появилось еще два поля.

Я пробовал несколько вариантов ответов здесь (возможно, для предыдущих версий) и из документов, включая изменение main.js из самой основной папки, где определены titleHtml и timeHtml (как (core.htmlEscape (eventDef.title) Мне удалось добавить поля или, лучше сказать, div, которые появляются, но без содержимого, поскольку eventDef.description не является допустимым элементом, как и evenDef.notes.

Где я могу определить эти два в eventDef или как добавить эти поля и отобразить их?

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var calendarEl = document.getElementById('calendar');
    var start = event.start; 
    var element = this;
    var calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: [ 'dayGrid' ],
    defaultView: 'dayGridWeek',
    displayEventEnd:true,
    columnHeaderFormat:{ weekday: 'long', month: 'long', day: 'numeric', omitCommas: true }, 
    titleFormat: { year: 'numeric', month: 'long' },
    header: {center:  'title,prev,next', right:'', left:''},  
      eventTimeFormat: {
          hour: 'numeric',
          minute: '2-digit',
          meridiem: false
        },
      firstDay:1,
       events: [
        <?php get_data();?>
        ],
    });
    calendar.render(); 
  });

</script>

Спасибо заранее за любые предложения.

0
mamatata 28 Окт 2019 в 17:15
Не могли бы вы сделать скрипку того, что вы пытаетесь?
 – 
pmiranda
28 Окт 2019 в 17:44
Пожалуйста, задавайте по одному вопросу за раз.
 – 
ADyson
28 Окт 2019 в 18:47
В любом случае вы можете добавить дополнительный контент к своим событиям с помощью обратного вызова eventRender — проверьте документы. Ты это пробовал?
 – 
ADyson
28 Окт 2019 в 19:00
Я сделал это, но мне не нужна всплывающая подсказка, я хочу, чтобы она отображалась по умолчанию, и я не мог сделать это с помощью этого обратного вызова, даже удалив часть всплывающей подсказки. У вас есть какие-нибудь рабочие примеры, демо, возможно? Спасибо.
 – 
mamatata
28 Окт 2019 в 21:45
1
Я добавил div fc-desc, как уже упоминалось, а затем использовал eventRender: function(info) { info.el.querySelector('.fc-desc').innerHTML = "" + info.event.description + ""; }, и это работает, спасибо, Эдисон!
 – 
mamatata
29 Окт 2019 в 11:46

1 ответ

Лучший ответ
eventRender: function(info) { 
  info.el.querySelector('.fc-desc').innerHTML = "" + info.event.description + "";
}

Это решило мою проблему, спасибо ADyson за помощь.

1
ADyson 29 Окт 2019 в 15:25
Вы знаете, что пустые строки ("") здесь совершенно избыточны? Они не добавляют никакого контента в HTML. Непонятно, зачем вы их использовали. info.el.querySelector('.fc-desc').innerHTML = info.event.description; даст точно такой же результат.
 – 
ADyson
29 Окт 2019 в 15:28