В календаре есть даты(div dates) обозначены, как const datesElement
Есть отдельный div week, оборачивающий каждую неделю
Пытаюсь написать код на отображение события каждой даты по клику на ней, обозначил его card
card in card out содержат анимацию открытия и закрытия окна
По сути код должен делать следующее при нажатии на дату:
1. проверить есть ли открытое событие(card)
2. если есть - закрыть его и удалить div
3. создать новый div card и открыть событие к текущей дате
Почему-то код создает отдельный пустой div после всех div week и больше ничего не делает, даже не удаляет при нажатии на другую дату, не могу понять, где ошибка, помогите исправить.
function addCard(){
let card, arrow;
let currentOpened = datesElement.querySelector('.card');
if(currentOpened && currentOpened.parentNode === week.parentNode) {
card = currentOpened;
arrow = datesElement.querySelector('.arrow');
} else {
if(currentOpened) {
currentOpened.addEventListener('webkitAnimationEnd', function(){
currentOpened.parentNode.removeChild(currentOpened);
});
currentOpened.addEventListener('oanimationend', function(){
currentOpened.parentNode.removeChild(currentOpened);
});
currentOpened.addEventListener('msAnimationEnd', function(){
currentOpened.parentNode.removeChild(currentOpened);
});
currentOpened.addEventListener('animationend', function(){
currentOpened.parentNode.removeChild(currentOpened);
});
currentOpened.className = 'card out';
}
card = document.createElement('div', 'card in');
let arrow = document.createElement('div', 'arrow');
card.appendChild(arrow);
week.parentNode.appendChild(card);
}
}
datesElement.addEventListener('click', () => {
addCard();
})