我有一个函数可以更改我的img
src并将其淡入和淡出:
function changeImg(e, f) {
$('#image').fadeOut(300, function(){
$(this).attr('src', e+f.img).bind('onreadystatechange load', function(){
if (this.complete) $(this).fadeIn(300);
});
});
}
如您所见,我传递了var imgArr
和var curr
两个参数,这些参数在.click()
函数中给出:
var imgArr = [{ object1: '..', object2: '..', img: 'image1.png'}, and more array elements];
$divs.click(function() {
var curr = $(this).index();
// function where I pass imgArr (an array) and var curr
changeImg(imgArr, curr);
});
问题是changeImg()
不起作用。它根本不知道数组和curr。当我将函数放在click处理程序中时,一切正常imgArr
并且curr
已知。我认为这可能是一个语法问题?我必须写e+f
不同吗?我也试过e+[f]
。
提前致谢!
编辑:让我更清楚我希望在changeImg
以下内容:
$(this).attr('src', imgArr[curr].img).bind(...);
答案 0 :(得分:1)
假设e是一个对象数组,f是你应该使用的所需项目的索引:
$(this).attr('src', e[f].img);
但我认为这只是朝着正确方向迈出的一步。