#javascript #html #jquery #shopify #liquid
#javascript #HTML #jquery #Shopify #жидкость
Вопрос:
Кто-нибудь может мне помочь, почему моя избранная фотография не изменится, когда я выберу вариант на странице коллекции??
https://strokes-test.myshopify.com/collections/frontpage
Javascript
initColorSwatchGrid: function() {
jQuery('.item-swatch li label').click(function(){
var newImage = jQuery(this).parent().find('.hidden img').attr('src');
jQuery(this).parents('.item-row').find('.featured-image').attr({ src: newImage });
return false;
});
}
HTML
<ul class="item-swatch color_swatch_Value">
{% for option in product.options %}
{% if option == 'Shades' %}
{% assign index = forloop.index0 %}
{% assign colorlist = '' %}
{% assign color = '' %}
{% for variant in product.variants %}
{% capture color %}
{{ variant.options[index] }}
{% endcapture %}
{% unless colorlist contains color %}
{% assign text = color | handleize %}
<li>
<label style="{% if text == 'white' %}border: 1px solid #cbcbcb; {% endif %}background-color: {{ color | split: ' ' | last | handle }}; background-image: url({{ text | append: '.png' | file_url }});"></label>
{% if variant.image != null %}
<div class="hidden">
<img src="{{ variant.image.src | product_img_url: 'grande' }}" alt="{{ text }}"/>
</div>
{% endif %}
</li>
{% capture tempList %}
{{ colorlist | append: color | append: ' ' }}
{% endcapture %}
{% assign colorlist = tempList %}
{% endunless %}
{% endfor %}
{% endif %}
{% endfor %}
</ul>
Обратите внимание, что я также использую jquery версии v1.8.1
Ответ №1:
Вам нужно обновить код JS, чтобы он работал правильно, используйте его
initColorSwatchGrid: function() {
jQuery('.item-swatch li label').click(function () {
var newImage = jQuery(this).next().find('img').attr('src');
jQuery(this).parents('.product-detail').prev().find('.featured-image').attr({ src: newImage });
return false;
});
}
Комментарии:
1. Спасибо @Onkar, также я планирую добавить кнопку «добавить в корзину», есть предложения, как применить к моим образцам?
2. Необходимо обновить код JS, а также стиль HTML prnt.sc/w4j127
3. используйте
jQuery(this).parents('ul.item-swatch').prev().val(jQuery(this).attr('value'));
для определения значения выбранного элемента образца, чтобы выбрать список внутри функции swtach click. также скройте выбор, потому что образец и выбор имеют одинаковую цель.