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);

应该可以