Помогите исправить Код
Выдаёт ошибку на 9й строке (Expected '{' and instead saw '$'. Пишет Don't make functions within a loop. и в 10 строке: Missing "use strict" statement.)
/* Массив с данными */ var data = [ {class: 'v1', img: '1.png', material: 'Белый'}, {class: 'v2', img: '2.png', material: 'Жёлтый'}, {class: 'v3', img: '3.png', material: 'Красный'}, // и т.д. ]; /* Цикл, формирующий обработчики клика на основании массива данных */ for (var i = 0; i < data.length; i++) $("."+data[i].class).click(function () { $("div.box").html('<img src="img/zal/color-big/1/'+data[i].img+'">'); $("div.material").html(data[i].material); $(".view").show(); $(".view").html('<a href="img/zal/texturi/1/'+data[i].img+'" class="fancybox" rel="textura"><span class="icon-view"></span></a>'); }); Изначально был такой Код: /* Текстуры и Атрибуты ссылок */ var v1la = "img/zal/color-big/1/"; var v1l = "img/zal/texturi/1/"; var v1atr = "class='fancybox' rel='textura'><span class='icon-view'></span>"; /* Материалы 1го Варианта */ $(".v1").click(function () { $("div.box").html('<img src="'+v1la+'1.png">'); $("div.material").html("Материал 1"); $(".view").show(); $(".view").html('<a href="'+v1l+'1.png" '+v1atr+'</a>'); }); $(".v2").click(function () { $("div.box").html("<img src='img/zal/color-big/1/2.png'>"); $("div.material").html("Материал 2"); $(".view").show(); $(".view").html('<a href="'+v1l+'2.png" '+v1atr+'</a>'); }); $(".v3").click(function () { $("div.box").html("<img src='img/zal/color-big/1/3.png'>"); $("div.material").html("Материал 3"); $(".view").show(); $(".view").html('<a href="'+v1l+'3.png" '+v1atr+'</a>'); }); |
И зачем вообще этот цикл?
<html> <body> <div id="v"> <span class="v">Btn</span> <span class="v">Btn</span> <span class="v">Btn</span> </div> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script> var data = [ {class: 'v1', img: '1.png', material: 'Белый'}, {class: 'v2', img: '2.png', material: 'Жёлтый'}, {class: 'v3', img: '3.png', material: 'Красный'}, // и т.д. ]; $(function() { $('#v').on('click', 'span', function() { var i = $(this).index(); alert(data[i].img) }) }); </script> </body> </html> |
А при чём здесь Alertы?
|
exid,
вам показали как убрать цикл, а вместо алерт вам нужно добавить строки 11-14 из первого кода |
А вы не могли бы на моём примере сделать?
Я просто в Яве не силён пока. Сейчас напортачу и буду задавать ещё кучу вопросов |
exid,
не могу, пример вам показан как образец, только вам достуна информация как должно быть на самом деле. запомните пример на будущее. возможно в вашем цикле не хватает скобок {} for (var i = 0; i < data.length; i++) { //код } |
exid,
если обработку щелчка по элементам делегировать родителю, то в обработчике можно получить индекс этого элемента, по которому уже получить необходимое из объекта. HTML код нужно показывать, а иначе не понять с чем вы там экспериментируете. |
Часовой пояс GMT +3, время: 14:45. |