javascript - 项目未添加到数组中?

标签 javascript jquery arrays

所以这应该非常简单,但我不知道出了什么问题。

    var imageColors = [];

    $('.portfolio-image').each(function(index, el) {
        RGBaster.colors(this, {
          success: function(payload) {
            console.log(payload.dominant);
            imageColors.push(payload.dominant);
          }
        });
    });

    $('.portfolio-title').each(function(index, el) {
        $(this).css('color', 'imageColors[index]');
    });

});

所以上面的代码有一个数组,它应该存储一组图像中的颜色。然后,我们循环浏览一些文本,并将文本颜色按照每个图像可见的顺序设置为主色。

无论如何,问题是无论我如何向 imageColors 数组“添加”某些内容,其中都没有任何内容。当我运行数组长度的 console.log 时,它始终为 0。那么有人可以解释为什么没有添加任何内容吗?

最佳答案

由于您有一个 success 回调传递给 colors 插件,它看起来像一个异步方法,这意味着当第二个每个 block 执行时,数组可能不会被填充所需的数据。

这里的一个解决方案是在回调中设置颜色CSS,例如

var imageColors = [];
var $titles = $('.portfolio-title');
$('.portfolio-image').each(function (index, el) {
    RGBaster.colors(this, {
        success: function (payload) {
            imageColors.push(payload.dominant);
            $titles.eq(index).css('color', payload.dominant);
        }
    });
});

关于javascript - 项目未添加到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27221712/

相关文章:

javascript - 从文件输入返回两个图像范围

javascript - React Native Elements ListItem.Accordion 项目导致 SectionList 滚动(远)超出预期

php - 如何将while sql查询循环更改为数组循环

javascript input.focus() 在 firefox 23 中不起作用

javascript - Jquery POST JSON 数据到 Python 后端

javascript - 检查 ascii 纯文本

jquery - 具有多个表格的可滚动 div

javascript - 在添加它们的值后找到那些等于 x 的元素的索引

javascript - 在数组元素前添加文本

javascript - 转动对象,以便它们在 Three.js 中重置其 y 旋转