【发布时间】:2021-01-18 04:19:16
【问题描述】:
我有一个 on change 功能,应该将图像更改为选定的变体图像,但我无法使其正常工作。这是html标记;
{% for image in product.images %}
<div class="single-product-image single-option-selector" {% if image.attached_to_variant? %} data-variant="{{ image.variants.first.id }}"{% endif %} style="{% if forloop.index > 1 %}display:none;{% endif %}">
<img class="img-fluid lazyload"
src="{{ image.src | img_url: '1200x1200', crop: 'center' }}"
data-src="{{ image.src | img_url: '1200x1200', crop: 'center' }}"
alt="{{ image.alt | escape }}">
</div>
{% endfor %}
这是用于从 Shopify 中选择变体的选项选择器
<select name="{{option_name}}" id="select-{{option_name}}" class="js-variant-id-image">
<option class="js-variant-radio" value="placeholder" disabled {% if selected == false %}selected{% endif %}>Select {{ option.name }}</option>
{% for value in option.values %}
<option value="{{ value }}" {% if value == selected %}selected{% endif %} {% for variant in product.variants %} data-inventory-quantity="{{ variant.inventory_quantity }}"{% endfor %}>{{value}}</option>
{% endfor %}
</select>
这是应该改变图像的jquery函数
$(document).ready(function(){
$(document).on('change', '.js-variant-id-image', function(){
let
variant_id = this.value,
variant_image = $('.single-product-image[data-variant="'+variant_id+'"]');
console.log(variant_id);
variant_image.show().siblings(":visible").hide();
})
});
【问题讨论】:
-
请提供发送到浏览器的源html样本,不包括服务器端模板。否则我们无法运行它来查看问题。见minimal reproducible example
-
网站上使用了哪个 Shopify 主题?
-
我正在从头开始构建主题
-
好的,那么你是用木结构还是自己定制的?如果您使用 Shopify 中的 optin_selection.js,则有一个名为
onVariantChange的事件,此事件会返回有关所选变体的数据,您可以使用它来检查数据并将其附加到特色图片中。
标签: javascript jquery shopify