Как сделать изменение изображения при клике JQuery

RY
На сайте с 26.05.2018
Offline
0
716

Народ, нужна помощь, нужно сделать как в онлайн магазинах функцию выбора цвета, что бы изображение после клика менялось, изображений много, галерея, не могу додуматься в силу абсолютного незнания jQuery:D:


<div class="col ">
<div class="thumbnail">
<h3>Заголовок</h3>
<img src="images/osveshenie/1.png" id="basic"alt="...">
<div class="caption">
<p>Артикул</p>
<p><a href="#" class="btn btn-primary" id="gold" role="button">Золото</a>
<a href="#" class="btn btn-default" id="silver" role="button">Серебро</a></p>
</div>
</div>
</div>

Пытался сделать так, но меняется только первое изображение, может как то привязать кнопку к блоку?

$(document).ready(function(){

$( "#silver" ).one( "click", function(){
$('#basic').each(function(){
var old_src, new_src, temp;
old_src = $(this).attr('src');
temp = old_src.split('.');
temp[0] += '-s';
new_src = temp.join('.');
$(this).attr('src',new_src);
})
});
});

Выручайте, весь день голову ломаю))

S
На сайте с 30.09.2016
Offline
469
#1
RazumovY:
Пытался сделать так, но меняется только первое изображение
$( "#silver" ).one( "click", function(){
$('#basic').each(function(){

Я не знаю, что там у Вас за код на странице, но судя по всему, всё очень криво.

1. Попробуйте написать .on('click' вместо .one('click'

2. У каждого элемента должен быть уникальный id, не может быть нескольких одинаковых id на одной странице. Для обозначения группы элементов используйте class.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Эгоист
На сайте с 12.09.2011
Offline
71
#2

При клике на ссылку должно меняться изображение в теге img c id basic?

S
На сайте с 30.09.2016
Offline
469
#3

Эгоист, да не галерея у него. Это вариативные товары. Карточка товара, в ней фото какой-нибудь люстры, под фото кнопочки разного цвета. При нажатии на золотую кнопочку фото серебряной люстры заменяется на фото золотой люстры.

Эгоист
На сайте с 12.09.2011
Offline
71
#4
Sitealert:
Эгоист, да не галерея у него. Это вариативные товары. Карточка товара, в ней фото какой-нибудь люстры, под фото кнопочки разного цвета. При нажатии на золотую кнопочку фото серебряной люстры заменяется на фото золотой люстры.

Та я уже понял..

Он что то мне подсказывает не так начал делать.. надо больше информации

RY
На сайте с 26.05.2018
Offline
0
#5
Sitealert:
Эгоист, да не галерея у него. Это вариативные товары. Карточка товара, в ней фото какой-нибудь люстры, под фото кнопочки разного цвета. При нажатии на золотую кнопочку фото серебряной люстры заменяется на фото золотой люстры.

Ну это вроде галерей, на странице отображаются например 30 изображений светильников, и под ними нужно сделать кнопки изменения цвета светильника, но не в карточке, а на самой странице, где все 30 изображений.

RY
На сайте с 26.05.2018
Offline
0
#6
Sitealert:
Я не знаю, что там у Вас за код на странице, но судя по всему, всё очень криво.
1. Попробуйте написать .on('click' вместо .one('click'
2. У каждого элемента должен быть уникальный id, не может быть нескольких одинаковых id на одной странице. Для обозначения группы элементов используйте class.

1.Ну дело не в "on" и "one", но да, это криво)

2. Я понимаю, но если к каждому изображению присваивать свои id, то нужно так же и скрипт повторять с новым id? А если сделать классом, то при нажатии на кнопку все изображения с этим классом изменят путь.

S
На сайте с 30.09.2016
Offline
469
#7

Всё будет так, как Вы сделаете. А id должен быть уникальным.

dma84
На сайте с 21.04.2009
Offline
168
#8
RazumovY:
1.Ну дело не в "on" и "one", но да, это криво)
2. Я понимаю, но если к каждому изображению присваивать свои id, то нужно так же и скрипт повторять с новым id? А если сделать классом, то при нажатии на кнопку все изображения с этим классом изменят путь.

С вашим уровнем знания jQuery и DOM, проще нанять программиста, который это сделает за 5-10 минут, чем пытаться вам что-то объяснить, не видя сайта.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий