javascript - JQuery 脚本错误

标签 javascript jquery

我用 JQuery 开发了下面的图像更改器(mutator):

var images = [];
images[0] = "image1.jpg";
images[1] = "image2.jpg";

var i = 0;
setInterval(fadeDivs, 3000);

function fadeDivs() {
    i = i < images.length ? i : 0;
    $('.slideshow-right-corner img').fadeOut(100, function(){
        $(this).attr('src', images[i]).fadeIn(100);
    })
    i++;
}

由于某种原因,它在本地工作正常,但是当我与我的网站集成时,它对于数组中的第一个图像工作正常并停止工作。以下是我检查元素时收到的错误:

Uncaught TypeError: undefined is not a function (index):398 (anonymous function) (index):398 E.complete jquery-1.3.2.min.js?ver=3.4.1:19 o.fx.step jquery-1.3.2.min.js?ver=3.4.1:19 F jquery-1.3.2.min.js?ver=3.4.1:19 (anonymous function)

最佳答案

问题是多线程。 i++ 将在 fadeOut 函数之前进行计算。

因此,当 i=2 images[2] 将返回 undefined 并且程序将停止工作。

淡入后,尝试将 i++ 移动到函数内部。

这是更新后的代码(经过测试):

function fadeDivs() {
   i = i < images.length ? i : 0;
   $('.slideshow-right-corner img').fadeOut(100, function() {
   $(this).attr('src', images[i]).fadeIn(100);
   i++;
});

关于javascript - JQuery 脚本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23561767/

相关文章:

php - 使用ajax调用从服务器文件夹下载图像

javascript - 根据迭代器更改 eventListener 函数参数。 (原版 JS)

javascript - 使用 Bootstrap 和 ng-bootstrap 好吗?

javascript - 将一个 div 的元素发送到另一个 div

javascript - 使用 jquery 和 FileResult 更改图像的 src

javascript - 如何从 HTML select 中获取所选选项数据属性

javascript - 逻辑相似代码的圈复杂度

javascript - 令人困惑的编译器错误 : Argument of type 'string' is not assignable to parameter of type

javascript - 如果选中另一个复选框,JQuery 将禁用该复选框

jquery - 如果 <details> 具有 'open' attr,如何更改 <summary> 文本