Добавить товару активному изображению
Всем привет. Народ, помогите пжлста. Есть сайт: hookah-dream.ru/katalog/product/view/20/202.html
В нём есть товар, например "колбы для кальяна". подскажите как сделать так, чтобы выбранное изображение колбы дополнялось меткой? Ну т.е. картинкой? Надо чтобы на выбранном изображении стояла галочка, что в данный момент выбрано именно это изображение товара. Помогите пжлста. Саму метку с её изображением сделал, а вот как её прикрепить к изображению товара - не знаю. Думаю функция на JS нужна, которая бы активной картинке какой-нибудь класс active присваивала, но вот реализовать пока не получается. Вот код:
<span id='list_product_image_thumb'>
<?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
<!--тут идёт вывод метки товара, сейчас выводятся метки у каждой миниатюры, а надо только у выбранной--->
<?php if ($product->label_id){?>
<div class="product_label">
<?php if ($product->_label_image){?>
<img src="<?php print $product->_label_image?>" alt="<?php print htmlspecialchars($product->_label_name)?>" />
<?php }else{?>
<span class="label_name"><?php print $product->_label_name;?></span>
<?php }?>
</div>
<?php }?>
<!-------------------------------->
<?php foreach($this->images as $k=>$image){?>
<!--нужно обработать OnClick(). Нужно добавить класс active именно той картинке, на которую нажали,
а остальным присвоить класс no_active. Изображение с классом active (метка) и будет появляться только
на одной картинке, а не на всех-->
<img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>,this)" />
<?php }?>
<?php }?>
</span>
И есть вот такая функция, срабатывает при клике по изображению:
function showImage(id, obj){
jQuery('.video_full').hide();
jQuery('a.lightbox').hide();
jQuery("#main_image_full_"+id).show();//Вывод большой картинки
jQuery(".product_label").show();//Вывод метки
//Добавляем класс
//jQuery(".jshop_img_thumb").addClass("active");
//jQuery(obj.className).addClass("active");
var my_class=jQuery(obj).attr("class");
jQuery("."+my_class).addClass("active");
//my_class.addClass("active");
}
|
Если результирующий html это span и в нем img, то ради этих двух тегов столько php-тегов натуеверчено, что код читать, это приключение. ) Неужто нельзя упростить запись используя тернарный оператор?
Если я правильно понял, то не jQuery(".product_label").show(); нужен, а добавлять/удалять класс. Но речь идет о товарах, а не просто картинках, а товары это не собственность клиента, сервер то должен знать о выборе пользователя, а сообщать ему об этом классом не получится, нужна форма, а конкретно ее элемент checkbox, который и определяет выбор. И все события должны быть привязаны к нему, по вашему же описанию получается, что вы пытаетесь управлять картинкой вне контекста товара, которому она принадлежит. |
| Часовой пояс GMT +3, время: 11:47. |