Javascript 作为函数param传递变量不起作用-语法问题?
我有一个功能,可以更改我的Javascript 作为函数param传递变量不起作用-语法问题?,javascript,jquery,html,Javascript,Jquery,Html,我有一个功能,可以更改我的imgsrc并淡入淡出: function changeImg(e, f) { $('#image').fadeOut(300, function(){ $(this).attr('src', e+f.img).bind('onreadystatechange load', function(){ if (this.complete) $(this).fadeIn(300); }); }); } 如
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 imgar
和var curr
,这两个参数在函数中给出
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(...);
假设e是一个对象数组,f是您应该使用的所需项目的索引:
$(this).attr('src', e[f].img);
但我认为这只是朝着正确方向迈出的一步。@AmitJoki对不起,有什么不清楚的?我试着编辑!你为什么要做+
?@wander就是这样,想做一个答案吗?只是想知道,你为什么不传递新的src值,而不是同时传递数组和索引呢?(例如,changeImg(imgArr[curr])
)@BeNdErR嗯,事实上这是一个很好的观点!不知道为什么我没有想到!