У меня есть полный календарь на основе тегов скрипта в соответствии с this . В моем календаре есть функция eventClick, которая загружает данные в модал начальной загрузки:
<script>
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
selectable: true,
firstDay : 1,
plugins: [ 'interaction', 'dayGrid'],
defaultView: 'dayGridMonth',
header: {
left: 'today',
center: 'title',
right: 'prev, next',
},
events: [
{% for event in main_events %}
{
client: '{{event.client.login}}',
user: '{{event.user}}',
},
{% endfor %}
],
eventClick: function(event) {
$('#modal_window').modal();
$('#modal_event_client').html(event.event.extendedProps.client);
$('#modal_event_user').html(event.event.extendedProps.user);
if (event.event.extendedProps.super_user_status == 'True') {
$('#modal_subtask_names').html(event.event.extendedProps.subtask_names);
$('#subtask_name').hide();
$('#subtask_description').hide();
}
if (event.event.extendedProps.super_user_status == 'False') {
$('#modal_subtask_name').html(event.event.extendedProps.subtask_name);
$('#modal_subtask_description').html(event.event.extendedProps.subtask_description);
$('#modal_subtask_comment').html(event.event.extendedProps.subtask_comment);
$('#subtask_names').hide();
}
}
});
calendar.render();
});
</script>
html:
<!-- Calendar-->
<div id='calendar'></div>
<!-- Modal -->
<div id="modal_window" class="modal fade bd-example-modal-sm">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<!-- Modal body -->
<div class="modal-body">
<div class="container-fluid">
<div class="row color">
<div class="col-4"><b>Client</b><p id="modal_event_client"></p></div>
</div>
</div>
<!-- Modal footer -->
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
Моя проблема заключается в том, что каждый раз, когда я щелкаю событие, данные перенаправляются из предыдущего события в текущее,Данные календаря правильно распределяются после обновления.
Как реализовать события обновления или события перерисовки после события щелчка?
Обновление: благодаря использованию ADyson я добавил в событие функцию showClick:
if (event.event.extendedProps.super_user_status == 'True') {
$('#subtask_name').hide();
$('#subtask_description').hide();
$('#subtask_names').show();
$('#modal_subtask_names').html(event.event.extendedProps.subtask_names);
}
if (event.event.extendedProps.super_user_status == 'False') {
$('#subtask_names').hide();
$('#subtask_name').show();
$('#subtask_description').show();
$('#modal_subtask_name').html(event.event.extendedProps.subtask_name);
$('#modal_subtask_description').html(event.event.extendedProps.subtask_description);
$('#modal_subtask_comment').html(event.event.extendedProps.subtask_comment);
}
Теперь все работает нормально.