我正在尝试创建一个全局布尔变量,并使用它来检查是否满足条件。如果满足条件,则执行特定操作并将其设置为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 %}
答案 0 :(得分:0)
我相信您的代码可以正常工作。您将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 %}