jQuery после ul list .remove () больше не будет заполнять список - PullRequest
0 голосов
/ 27 февраля 2019

Когда страница загружена, есть 3 списка.Первый содержит активный список, а второй и третий - пустые.При щелчке по активному списку li второй список (ul) заполняется одним элементом li, процесс заполнения автоматически продолжается до третьего списка (по щелчку мыши).Затем, когда нажимается кнопка удаления, оба списка удаляются, и процесс должен работать так же, как описано, но второй список по какой-то причине не заполняется, и все идет к третьему списку.

Я пробовал методы: remove (), empty (), detach (), но ни один из них, кажется, не работает.Также в операторе if я попытался проверить if (typeof ul.lenght === "undefined"), но даже это не работает.

Также стоит упомянуть в console.log() при проверке свойства ul.lenght в первый раз, когда оно возвращает 0 и неопределенное значение, и заполняет второй список, нопосле нажатия кнопки удаления он возвращает то же значение, но не заполняет список.

Вот код:

function myf() {
    var orig = $("#ori li").length;
    if ($("#ori li").length === 0 || typeof orig === "undefined") {
        $(document).on('click', '#orglis li', function() {
            $(this).remove();
            $("#ori").append(this);
        });
    } else {
        $(document).on('click', '#orglis li', function() {
            $(this).remove();
            $("#zam").append(this);
            var lio = document.getElementById("ori").getElementsByTagName("li");
            var larr = lio[0].innerText;
            var arr = Array.from(document.querySelectorAll('#c>ul>li'), li => (li.textContent));
            var tekst = "";
            var i;
            var j;
            for (j = 0; j < arr.length; j++) {
                arr[j] = arr[j].trim();
            }
            for (i = arr.length - 1; i >= 0; i--) {
                tekst += larr + ", " + arr[i] + '\n';
            }

            document.getElementById("tare").innerHTML = tekst;
            document.getElementById("imep").value = larr;
        });
    }
}

Здесь вы можете увидеть демо.

РЕДАКТИРОВАТЬ: Также попытался с externalHTML, чтобы установить ul, как раньше, но все еще не будет работать

1 Ответ

0 голосов
/ 27 февраля 2019

@ freedomn-m был прав насчет смешивания onclick= и $(document).on("click", и я заметил, что у меня есть без причины две одинаковые функции

...