JavaScript函数参数错误
JavaScript function parameter error
我设置了这个简单的幻灯片放映,如果我删除参数并手动添加 class 和速度,一切正常。
如果我使用参数设置class和速度,它会失败。第一张图像应用了当前 class,然后 dom 似乎变得疯狂了。
'undefined' 弹出很多,虽然在控制台没有错误。
如有任何帮助,我们将不胜感激。谢谢
let pos = 0;
window.addEventListener("load", function(event) {
testIt('current', 5000);
});
function testIt(_class, _speed) {
const testPara = document.querySelectorAll('.bg_imgs');
let i;
for(i = 0; i < testPara.length; i++) {
testPara[i].classList.remove(_class);
}
pos++;
if(pos > testPara.length) {pos = 1;}
testPara[pos-1].classList.add(_class);
setTimeout(_class, _speed); }
SetTimeout 将函数作为其第一个参数。如果你试图延迟递归尝试:
setTimeout(() => testIt(_class, _speed), _speed)
认为 window.requestAnimationFrame 会是更好的解决方案。 More info on animation frame
您似乎向 setTimeout
发送了错误的参数。它应该采用 setTimeout(function, time)
的形式,但相反,您传递的是我认为是字符串的内容。
setTimeout(function() { testIt(_class, _speed); }, _speed);
应该可以
我设置了这个简单的幻灯片放映,如果我删除参数并手动添加 class 和速度,一切正常。
如果我使用参数设置class和速度,它会失败。第一张图像应用了当前 class,然后 dom 似乎变得疯狂了。
'undefined' 弹出很多,虽然在控制台没有错误。
如有任何帮助,我们将不胜感激。谢谢
let pos = 0;
window.addEventListener("load", function(event) {
testIt('current', 5000);
});
function testIt(_class, _speed) {
const testPara = document.querySelectorAll('.bg_imgs');
let i;
for(i = 0; i < testPara.length; i++) {
testPara[i].classList.remove(_class);
}
pos++;
if(pos > testPara.length) {pos = 1;}
testPara[pos-1].classList.add(_class);
setTimeout(_class, _speed); }
SetTimeout 将函数作为其第一个参数。如果你试图延迟递归尝试:
setTimeout(() => testIt(_class, _speed), _speed)
认为 window.requestAnimationFrame 会是更好的解决方案。 More info on animation frame
您似乎向 setTimeout
发送了错误的参数。它应该采用 setTimeout(function, time)
的形式,但相反,您传递的是我认为是字符串的内容。
setTimeout(function() { testIt(_class, _speed); }, _speed);
应该可以