JS预加载图像错误

时间:2015-03-15 22:23:08

标签: javascript jquery

我已经创建了一个包含我页面上所有图像的URL的数组,然后我将这个数组发送到一个函数,该函数又将每个图像加载到一个函数中。然后页面加载布局。然而,我收到了错误:

Uncaught TypeError: object is not a function

任何帮助非常感谢

JS:

$(document).ready(function () {
    preLoadImages();
    useIsotope();
});

function useIsotope() {
    var $container = $('#work').isotope({
        filter: "*"
    });

    $('#control ul li a').click(function () {
        var selector = $(this).attr('data-filter');
        $container.isotope({ filter: selector });
        return false;
    });
}

function preload(arrayOfImages) {
    $(arrayOfImages).each(function () {
        $('<img/>')[0].src = this;
    });
}

function preLoadImages() {
    var imageArray = new Array();
    $('.imgWrapper a img').each(function (index) {
        imageArray.push(this.src)
    });
    console.log(imageArray)
    preLoad(imageArray) // HERE IS THE ERROR
}

2 个答案:

答案 0 :(得分:3)

使用preload(imageArray)代替preLoad(imageArray)

JavaScript区分大小写。 (source

答案 1 :(得分:0)

我看不到您评论的位置出错,但这看起来像是一个错误。

你正在设置       $ container = $('#work')。isotope({         过滤器:“*”       });

然后试图打电话

$container.isotope({ filter: selector });

我想你可能想这样写。

function useIsotope(){

  var $container = $('#work');
  $container.isotope({ filter: "*" });

  $('#control ul li a').click(function(){

    var selector = $(this).attr('data-filter');
    $container.isotope({ filter: selector });
    return false;
  });

}
阅读@ Guy的回答后,

更新,我也看到preload v.preLoad错误。