JavaScript函数参数错误

JavaScript函数参数错误,javascript,function,parameters,slideshow,Javascript,Function,Parameters,Slideshow,我有这个简单的幻灯片设置,如果我删除参数并手动添加类和速度,一切都很好 如果我使用参数来设置类和速度,它将失败。第一个图像应用了当前类,然后dom似乎变得疯狂 “undefined”弹出很多,尽管控制台中没有错误 任何帮助都将不胜感激。谢谢 let pos = 0; window.addEventListener("load", function(event) { testIt('current', 5000); }); function testIt(_class, _speed)

我有这个简单的幻灯片设置,如果我删除参数并手动添加类和速度,一切都很好

如果我使用参数来设置类和速度,它将失败。第一个图像应用了当前类,然后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=>测试类、速度、速度


我认为window.requestAnimationFrame是一个更好的解决方案

看起来您向setTimeout发送了错误的参数。它的形式应该是setTimeoutfunction,time,但实际上,您正在传递它,我假定它是一个字符串

setTimeout(function() { testIt(_class, _speed); }, _speed);

应该管用

这也很管用。更喜欢使用箭头功能,谢谢。