Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 作为函数param传递变量不起作用-语法问题?_Javascript_Jquery_Html - Fatal编程技术网

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嗯,事实上这是一个很好的观点!不知道为什么我没有想到!