Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

НЕ РАБОТАЕТ ПРОГА

Thermodynamix Ученик (47), открыт 5 дней назад
 window.onload = function(){
buttons_delete_recent_requests = document.getElementsByClassName("delete_hint_button");
hints_list = document.getElementsByClassName("search_music_hint");
create_listeners_delete_hints();
}


 // Создать слушатели кнопки удаления подсказок 
function create_listeners_delete_hints(){
for (let index = 0; index < buttons_delete_recent_requests.length; index++) {
let hints_item = hints_list[index];
hints_item.addEventListener("click", () => {
delete_hint(index);
});
}
}
 function delete_hint(index){ 
hints_list[index].style.display = "none";

hints_array = JSON.parse(getCookie("recent_requests"));

hints_array.splice(index, 1);

let currentDate = new Date();
currentDate.setMonth(currentDate.getMonth() + 6);
document.cookie = "recent_requests=" + JSON.stringify([hints_array]) + "; expires=" + currentDate.toUTCString();
}
суть заключается в том, что при загрузке страницы к кнопкам удаления подсказок привязывается слушатели, которые должны удалять подсказки, данные о которых хранятся в куки



В первый раз любая кнопка срабатывает, а во второй ни какая
1 ответ
Павел Просветленный (25676) 4 дня назад
Непонятно зачем тебе buttons_delete_recent_requests? Просто для итерации? По логике ты должен обработчик присваивать именно им, но почему-то присваиваешь элементам с классом search_music_hint.
Второе, наверняка и является причиной (может не единственной) - при каждом сохранении куки ты массив помещаешь в новый массив (JSON.stringify([hints_array])). Через каких 5 нажатий у тебя куки будет выглядеть так "[[[[[hints_array]]]]]". Естественно после первой попытки удаления всё перестанет работать.
ThermodynamixУченик (47) 4 дня назад
buttons_delete_recent_requests для присваивания им прослушивателя нажатия, "[[[[[hints_array]]]]] пофиксил, все равно не работает
ThermodynamixУченик (47) 4 дня назад
И еще такой прикол, что когда срабатывает строчка кода

 document.cookie = "recent_requests=" + JSON.stringify(hints_array) + "; expires=" + currentDate.toUTCString(); 
то функция getCookie не находит куки, да и вообще когда продебагал, в списке document.cookie recent_requests там не было
Павел Просветленный (25676) Thermodynamix, Уже только завтра вечером отвечу. Я спать
Похожие вопросы