Задать вопрос
@Tolmax

Как можно сбросить значения evt после обработки события?

Для удаления карточки при нажатии на кнопку сначала открывается попап с вопросом подтвердить удаление. При подтверждении нажатием кнопки, на сервер отправляется запрос DELETE (удаляется карточка на сервере) и при положительном ответе срабатывает функция delete(evt) для удаления карточки на сайте. Все работает. Однако видимо браузер хранит в памяти значение клика по evt предыдущие клики и каждый раз, при удалении следующей карточки, на сервер посылается новый запрос + дублируются запросы по уже удаленным карточкам.
Как можно обнулить значение evt после обработки? Метод evt.preventDefault(); почему то не работает..

if (isMyId !== cardData.owner._id) { // это сделано чтобы убрать кнопку удалить с чужих карточек
deleteButton.style.visibility = "hidden";
} else {
deleteButton.addEventListener("click", function (evt) { //вешаю обработчик на кнопку УДАЛИТЬ

openPopup(openPopupCardDeleteElement);//открылся попап
let event = evt; //запоминаю этот клик , тк будет еще один

evt.preventDefault(); //не работает???!!!!

submitCardDelete.addEventListener("click", cardDeleteSubmit); //вешая обработчик на кнопку ПОДТВЕРДИТЬ попапа

function cardDeleteSubmit(evt) {
evt.preventDefault();

httpDeleteMyCard(cardData._id) //отправляет запрос на удаление на сервер
.then(() => {
closePopup(openPopupCardDeleteElement); //закрывает попап
document.removeEventListener("keydown", closeEsc); //снимает слушателя
deleteCard(event); //удаляет карточку на сайте
});
}
});
}
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы