0rislav
@0rislav
Юрист, который рвется в программисты! =)

Как побороть функцию в JavaScript?

ЗАДАЧА:
Нужно сделать, что-бы в двух блоках менялись картинки из двух разных папок, т.е. для блока №1 - папка №1, а для блока №2 - папка №2 соответственно.
НАПИСАННЫЙ КОД:

function abc(c) {
    var picture = document.getElementById(c);
    var picArr = [["pic/1/1.jpg", "pic/1/2.jpg", "pic/1/3.jpg"], ["pic/2/1.jpg", "pic/2/2.jpg", "pic/2/3.jpg"]];
    var picIndex = 0;
    function super1(a, b) {
        function changePic() {
            a.setAttribute("src", b[picIndex]);   
            picIndex++;  
            if (picIndex >= b.length) {
                picIndex = 0;
            }
        }
        var pupu = setInterval(changePic, 2000);
        }
    super1(picture, picArr[0]);
    super1(picture, picArr[1]);
}
abc("block1");
abc("block2");


В итоге достичь нужного результата мне не удалось. Изображения в блоки подключаются из одной папки. Как решить эту проблему? Помогите люди добрые. :)

P/S: Я так понял загвоздка где-то в "super1(picture, picArr[0]); super1(picture, picArr[1]);"?

ЗАРАНЕЕ БЛАГОДАРЕН ГУРУ ЗА ОТВЕТ.
  • Вопрос задан
  • 498 просмотров
Решения вопроса 1
@4604590
JavaScript, HTML/CSS, PHP,MySQL, SuiteCRM/SugarCRM
попробуйте в функцию передать два аргумента (селекторы блоков) и определять разные picture и им менять картинки из соответствующих массивов.
попробую угадать, у вас картинки с папки pic/2/

function abc(c, d) {
    var picture = document.getElementById(c);
    var picture2 = document.getElementById(d);
    var picArr = [["pic/1/1.jpg", "pic/1/2.jpg", "pic/1/3.jpg"], ["pic/2/1.jpg", "pic/2/2.jpg", "pic/2/3.jpg"]];
    var picIndex = 0;
    function super1(a, b) {
        function changePic() {
            a.setAttribute("src", b[picIndex]);   
            picIndex++;  
            if (picIndex >= b.length) {
                picIndex = 0;
            }
        }
        var pupu = setInterval(changePic, 2000);
        }
    super1(picture, picArr[0]);
    super1(picture2, picArr[1]);
}
abc("block1","block2");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы