如何在Shopify Liquid中创建变量并在满足条件时更新



我正在尝试创建一个全局布尔变量,并使用它来检查是否满足条件。如果满足条件,则执行某个操作并设置为true,以便下次不执行该操作。

这是我试图使用的代码,目前看起来全局变量没有受到影响,它总是设置为true,并且操作总是发生。

提前谢谢!任何关于如何干燥的建议都将不胜感激。

{% assign firstFound = false %}
{% if product.metafields.pdm.product-details %}
{% if firstFound == false %} {% assign firstFound = true %} {% endif %}
<li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="details">Product Details</button></li>
{% endif %}
{% if settings.about_diamonds %}
{% if firstFound == false %} {% assign firstFound = true %} {% endif %}
<li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="diamonds">About Our Diamonds</button></li>
{% endif %}
{% if settings.shipping_returns %}
{% if firstFound == false %} {% assign firstFound = true %} {% endif %}
<li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="shipping">Shipping and Returns</button></li>
{% endif %}

我相信您的代码正在正常工作。您正在将firstFound变量设置为true,以便将active类分配给所有按钮。如果你只想把类分配给第一个显示的按钮,你需要把你的代码改成这样:

{% assign firstFound = false %}
{% if product.metafields.pdm.product-details %}
<li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="details">Product Details</button></li>
{% endif %}
{% if settings.about_diamonds %}
<li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="diamonds">About Our Diamonds</button></li>
{% endif %}
{% if settings.shipping_returns %}
<li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="shipping">Shipping and Returns</button></li>
{% endif %}

最新更新