Как создать пользовательский цикл?

#javascript #html #function #loops

#javascript #HTML #функция #циклы

Вопрос:

Я создал пользовательский цикл, который задерживает 300 мс на каждой итерации. Но в этом цикле строка ul.syle.height = i 'px'; выдает ошибку, которая TypeError: Cannot set property 'height' of undefined at main.js

Но переменная ul отлично работает выше в строке var ul_scrollHeight = ul.scrollHeight; . Тогда почему он не работает внутри ‘setTimeout’? Вот getNextSibling еще одна функция в моем коде.

 function fun1() {
    var ul = getNextSibling(this);
    var ul_scrollHeight = ul.scrollHeight;

    
    var i = 1;

    function customLoop() {
        setTimeout(function () {
            ul.syle.height = i   'px'; // Not Working

            if (i <= ul_scrollHeight) {
                customLoop();
            }
        }, 300)
    }

    customLoop();

} 

Комментарии:

1. Пожалуйста, также покажите соответствующий html

2. это ul.syle.height или ul.style.height ? style Я думаю, вы можете сделать опечатку.

3. С другой стороны, customLoop кажется, что он бесконечен, поскольку ни i один, ни ul_scrollHeight когда-либо не меняется.

Ответ №1:

Я думаю, у вас просто опечатка в этой строке:

 ul.syle.height = i   'px';
 

Потому ul.syle что отсутствует a t , так что возвращает undefined , у которого не было свойства height . 🙂