Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выполнение скрипта несколько раз на одной страницы. (https://javascript.ru/forum/misc/63779-vypolnenie-skripta-neskolko-raz-na-odnojj-stranicy.html)

pavelrer 29.06.2016 01:58

Выполнение скрипта несколько раз на одной страницы.
 
Рубята помогите пожалуйста, сразу скажу что в js ни бум бум.

На сайте магазина сделал такую штуку.
В категории где отображаются товары у каждого товара есть главная картинка и снизу три дополнительных. при нажатии на дополнительную картинку она встает на место главной. но вот беда при нажатии на дополнительную картинку она встает на место главной но сразу у всех товаров. :cray: :help:

вот страничка 40amperТОЧКАruСЛЕШelektro

Что? Во что обернуть, что-бы изолировать друг от друга.

Сам скрипт.

jQuery(document).ready(function() {
Virtuemart.updateImageEventListeners()
});
Virtuemart.updateImageEventListeners = function() {
jQuery("a.vm-additional-images").fancybox({
"titlePosition" : "inside",
"transitionIn" : "elastic",
"transitionOut" : "elastic"
});
jQuery(".additional-images a.product-image.image-0").removeAttr("rel");
jQuery(".additional-images img.product-image").click(function() {
jQuery(".additional-images a.product-image").attr("rel","vm-additional-images" );
jQuery(this).parent().children("a.product-image").removeAttr("rel");
var src = jQuery(this).parent().children("a.product-image").attr("href");
jQuery(".main-image img").attr("src",src);
jQuery(".main-image img").attr("alt",this.alt );
jQuery(".main-image a").attr("href",src );
jQuery(".main-image a").attr("title",this.alt );
jQuery(".main-image .vm-img-desc").html(this.alt);
});

}

Поможите пжлста!
Спасибо!

Rasy 29.06.2016 13:06

del

pavelrer 29.06.2016 15:45

Цитата:

Сообщение от Rasy
del

Чтож так строго-то!?

Задам вопрос по другому. (ну попробую хоть).
Еще раз я в этом блудном деле дурачек :)

Скрипт еще раз:

jQuery(document).ready(function() {
Virtuemart.updateImageEventListeners()
});
Virtuemart.updateImageEventListeners = function() {
jQuery("a.vm-additional-images").fancybox({
"titlePosition" : "inside",
"transitionIn" : "elastic",
"transitionOut" : "elastic"
});
jQuery(".additional-images a.product-image.image-0").removeAttr("rel");
jQuery(".additional-images img.product-image").click(function() {
jQuery(".additional-images a.product-image").attr("rel","vm-additional-images" );
jQuery(this).parent().children("a.product-image").removeAttr("rel");
var src = jQuery(this).parent().children("a.product-image").attr("href");
jQuery(".main-image img").attr("src",src);
jQuery(".main-image img").attr("alt",this.alt );
jQuery(".main-image a").attr("href",src );
jQuery(".main-image a").attr("title",this.alt );
jQuery(".main-image .vm-img-desc").html(this.alt);
});

}


Понятно что работает по классам вот в этом и причина что у главной картинки всех товаров класс один и тот-же.
Могу сделать так сделать класc image-id[товара] но это будет html созданный средствами php, а как из php сообщить скрипту этот новый класс. Типа должно получиться разные экземпляры?!

Если честно эта задача уже была решина без всяких id, что-то где-то нагуглил. Но чисто форсмажорно был поднят сайт из последнего копии при переноси сервера и усе!

Буду благодарен любой помощи.

Спасибо!

Rasy 29.06.2016 16:20

Цитата:

Сообщение от pavelrer
Чтож так строго-то!?

Пост никакого отношения не имеет к вам лично. Я решил сразу в этом мессиве разобраться, а потом лень стало, хоть и логика тут простая.

pavelrer 29.06.2016 16:52

Еще раз - Рубята помогите пожалуйста, сразу скажу что в js ни бум бум.
Ну ежли у кого карма то периваливает за разум, зачем писать ответы?
Лучше тогда по бабам!, че писать то не о чем!?

Rasy 29.06.2016 17:19

Цитата:

Сообщение от pavelrer
Еще раз - Рубята помогите пожалуйста, сразу скажу что в js ни бум бум.

Будет html разметка, то помогу, а потом обязательно по бабам отмечу:)

pavelrer 29.06.2016 17:48

Дык вот она
вот страничка 40amperТОЧКАruСЛЕШelektro
А про баб! Толстую мне оставь :lol:

pavelrer 29.06.2016 19:33

Блин! Ну может мой вопрос тупой!? Тут столько спецов и ноль ответа!? Или нет спецов? Что-то гонору у всех много! А толку нет! Ответ будет?
на оскорбление сильно не обижаюсь, но в неуправляемый ddos - javascript.ru с удовольствием поставлю если не прекратите данными делиться с кем не поподя!

pavelrer 29.06.2016 21:55

Блин! Ну может мой вопрос тупой!? Тут столько спецов и ноль ответа!? Или нет спецов? Что-то гонору у всех много! А толку нет! Ответ будет?
на оскорбление сильно не обижаюсь, но в неуправляемый ddos - javascript.ru с удовольствием поставлю если не прекратите данными делиться с кем не поподя!

Это не я сам в шоке! Админы, Посетители и Rasy!
Нет это Я - Извените все выпел! Узнаю свой почерк! Прошу прощения, выпил! Прошу понять! (и простить :) .
Еще раз Извините, черт попутал! Стыдно!

Dilettante_Pro 30.06.2016 13:09

pavelrer,
Чтобы найти нужный вам конкретный объект, надо от текущего this добраться до их общего родителя
(img.product-image->div.floatleft->div.additional-image->div.spacer blc_good - третий родитель)
и внутри родителя найти нужный элемент, т.е что-то вроде
jQuery(this).parent().parent().parent().find(".main-image img").attr("src",src);


Часовой пояс GMT +3, время: 20:53.