JavaScript куки сохраняются несмотря на изменение - PullRequest
0 голосов
/ 15 февраля 2020

Я пишу приложение для отслеживания дел и пытаюсь использовать куки для создания полупостоянства. Однако, когда страница обновляется, удаленные элементы списка снова появляются и не работают, т.е. не могут быть удалены как обычно и не могут быть вычеркнуты (изменение CSS).

Тег <body> имеет onload = "loadStorage" внутри этого вызова на <ul> с id = "list"

/* load on page load */
function loadStorage() {
    document.getElementById("list").innerHTML = document.cookie;
}

Элементы списка создаются так:

function newElement() {
    event.preventDefault(); // stop default redirect

    var li = document.createElement("li"); // create an <li> element

    /* make a text node from the input and put it in the <li> */
    var inputValue = document.getElementById("task").value; // retrieve value of text box
    var t = document.createTextNode(inputValue); // create a text node of the box value
    li.appendChild(t); // put the text node in the single <li>

    /* attach a button to the <li> element that deletes it */
    var btn = document.createElement("BUTTON"); // Create a <button> element
    btn.innerHTML = "X"; // Insert text
    btn.className = "button" // add class name for CSS targeting
    btn.addEventListener('click', removeItem); // add event listener for item deletion

    li.appendChild(btn); // Append <button> to <li> 

    li.addEventListener('click', checkToggle); // add event listener for a click to toggle a strikethrough

    appendItem("list", li); //append the li item to the ul
}

и затем передаются на

function appendItem(id, li) {
    event.preventDefault(); // prevent the defualt redirect

    document.getElementById(id).appendChild(li); // append the single li element to the ul

    document.cookie = document.getElementById(id).innerHTML; // Store
}

Кажется, это работает, потому что при обновлении страницы sh элементы остаются. Обычно функция removeItem(), присоединенная к кнопке в элементе <li>, удаляет элемент, но после добавления следующего он больше не работает при обновлении страницы. Также предполагается сбросить список, сохраненный в cook ie, но, похоже, это не работает.

function removeItem() {
    this.parentNode.remove()
    document.cookie = ""
    document.cookie = document.getElementById("list").innerHTML // Store
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...