如何在 Shopify Liquid 中创建变量并在满足条件时更新
How to create variable and update when condition is met in 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
class 已分配给所有按钮。如果您只想将 class 分配给第一个显示的按钮,您需要将代码更改为类似的内容:
{% 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 %}
我正在尝试创建一个全局布尔变量并使用它来检查是否满足条件。如果满足条件则执行某个动作并设置为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
class 已分配给所有按钮。如果您只想将 class 分配给第一个显示的按钮,您需要将代码更改为类似的内容:
{% 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 %}