$(".fc-event-dot").css(....
не будет работать так, как вы хотели, даже если бы он работал вообще, потому что $(".fc-event-dot")
нацелен на все точки (т.е. все элементы этого класса), а не только один для указанного события c. И это не работает, потому что эти элементы еще не были отрисованы. Каждая точка существует только в объекте element
, предоставленном для обратного вызова eventRender. FullCalendar еще не добавил событие и составляющие его элементы в DOM - это происходит только после завершения вызова eventRender, чтобы у вас была возможность изменить внешний вид до его отрисовки в календаре.
Поэтому вы необходимо обновить предмет, найдя его в пределах element
. К счастью, jQuery предоставляет простой способ сделать это, используя функцию .find()
:
eventRender: function(event, element) {
if (event.type == "X")
element.find(".fc-event-dot").css('background-color','#08b394');
if (event.type == "Y")
element.find(".fc-event-dot").css('background-color','#2a7568');
},
Рабочая демонстрация: https://codepen.io/ADyson82/pen/MWwXbVK?editable=true&editors=001