我已经创建了一个包含我页面上所有图像的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
}
答案 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错误。