#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
. 🙂