Помогите исправить Код
Выдаёт ошибку на 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, время: 13:20. |