Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.06.2016, 01:58
Интересующийся
Отправить личное сообщение для pavelrer Посмотреть профиль Найти все сообщения от pavelrer
 
Регистрация: 03.05.2014
Сообщений: 26

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

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

вот страничка 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);
});

}

Поможите пжлста!
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2016, 13:06
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

del

Последний раз редактировалось Rasy, 29.06.2016 в 13:10.
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2016, 15:45
Интересующийся
Отправить личное сообщение для pavelrer Посмотреть профиль Найти все сообщения от pavelrer
 
Регистрация: 03.05.2014
Сообщений: 26

Сообщение от 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, что-то где-то нагуглил. Но чисто форсмажорно был поднят сайт из последнего копии при переноси сервера и усе!

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

Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2016, 16:20
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от pavelrer
Чтож так строго-то!?
Пост никакого отношения не имеет к вам лично. Я решил сразу в этом мессиве разобраться, а потом лень стало, хоть и логика тут простая.
Ответить с цитированием
  #5 (permalink)  
Старый 29.06.2016, 16:52
Интересующийся
Отправить личное сообщение для pavelrer Посмотреть профиль Найти все сообщения от pavelrer
 
Регистрация: 03.05.2014
Сообщений: 26

Еще раз - Рубята помогите пожалуйста, сразу скажу что в js ни бум бум.
Ну ежли у кого карма то периваливает за разум, зачем писать ответы?
Лучше тогда по бабам!, че писать то не о чем!?
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2016, 17:19
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от pavelrer
Еще раз - Рубята помогите пожалуйста, сразу скажу что в js ни бум бум.
Будет html разметка, то помогу, а потом обязательно по бабам отмечу
Ответить с цитированием
  #7 (permalink)  
Старый 29.06.2016, 17:48
Интересующийся
Отправить личное сообщение для pavelrer Посмотреть профиль Найти все сообщения от pavelrer
 
Регистрация: 03.05.2014
Сообщений: 26

Дык вот она
вот страничка 40amperТОЧКАruСЛЕШelektro
А про баб! Толстую мне оставь
Ответить с цитированием
  #8 (permalink)  
Старый 29.06.2016, 19:33
Интересующийся
Отправить личное сообщение для pavelrer Посмотреть профиль Найти все сообщения от pavelrer
 
Регистрация: 03.05.2014
Сообщений: 26

Блин! Ну может мой вопрос тупой!? Тут столько спецов и ноль ответа!? Или нет спецов? Что-то гонору у всех много! А толку нет! Ответ будет?
на оскорбление сильно не обижаюсь, но в неуправляемый ddos - javascript.ru с удовольствием поставлю если не прекратите данными делиться с кем не поподя!
Ответить с цитированием
  #9 (permalink)  
Старый 29.06.2016, 21:55
Интересующийся
Отправить личное сообщение для pavelrer Посмотреть профиль Найти все сообщения от pavelrer
 
Регистрация: 03.05.2014
Сообщений: 26

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

Это не я сам в шоке! Админы, Посетители и Rasy!
Нет это Я - Извените все выпел! Узнаю свой почерк! Прошу прощения, выпил! Прошу понять! (и простить .
Еще раз Извините, черт попутал! Стыдно!
Ответить с цитированием
  #10 (permalink)  
Старый 30.06.2016, 13:09
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

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);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроллер запускается несколько раз при загрузке страницы tayrin Angular.js 4 15.07.2014 08:29
Confirm несколько раз. prowoke jQuery 3 05.09.2012 17:14
Событие click вызывается несколько раз. Почему? rusbody jQuery 22 21.08.2012 16:17
Несколько созданных элементов располагаются в одной строке. Как этого избежать? Hold Events/DOM/Window 1 21.01.2011 23:52
Две одинаковые страницы: на одной скрипты видны, на другой нет Маня Общие вопросы Javascript 9 03.06.2009 11:57