передать переменные как функция param не работает - проблема с синтаксисом?

0

У меня есть функция, которая меняет мой 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(...);
  • 0
    что???????????
  • 0
    @AmitJoki извините, но что неясно? Я пытаюсь редактировать тогда!
Показать ещё 6 комментариев
Теги:

1 ответ

1
Лучший ответ

Предполагая, что e - это массив объектов, а f - индекс требуемого элемента, который вы должны использовать:

$(this).attr('src', e[f].img);

Но я думаю, что это только один шаг в правильном направлении.

  • 0
    спасибо, вот и все!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню