У меня есть функция, которая меняет мой 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 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. Когда я поставил функцию внутри обработчика щелчка все работает отлично imgArr
и curr
известно. Я предполагаю, что это может быть проблема синтаксиса? Должен ли я писать e+f
другой? Я попробовал e+[f]
.
Заранее спасибо!
EDIT: чтобы было яснее, я хочу иметь внутри changeImg
следующее:
$(this).attr('src', imgArr[curr].img).bind(...);
Предполагая, что e - это массив объектов, а f - индекс требуемого элемента, который вы должны использовать:
$(this).attr('src', e[f].img);
Но я думаю, что это только один шаг в правильном направлении.