添加指向 jCarousel 图像的链接

Add links to jCarousel Images

我正在与 jQuery 合作,将 jCarousel 添加到我在 Shopify 上的主页。轮播正确显示和滚动,但我需要添加指向每个图像的链接,以便在单击图像时将用户定向到特定产品页面。

Shopify 使用名为 liquid 的模板引擎,它是 Ruby 的变体。我不知道 Ruby 或如何实现我正在寻找的功能。

下面是我使用 jCarousel 的片段。谁能建议在哪里修改代码,以便我为每张图片创建链接?

<div class="carousel-inner">
{% for i in (1..4) %}
{% capture show_slide %}slide_{{ i }}{% endcapture %}
{% capture image %}slideshow_{{ i }}.jpg{% endcapture %}
{% capture link %}slide_{{ i }}_link{% endcapture %}
{% capture link_text %}slide_{{ i }}_link_text{% endcapture %}
{% capture headline %}slide_{{ i }}_headline{% endcapture %}
{% capture content %}slide_{{ i }}_content{% endcapture %}
{% if settings[show_slide] %}
<div class="item{% if i == 1 %} active {% endif %}">
  <img src="{{ image | asset_url }}" alt="{{ settings[headline] | escape }}" />
  <div class="slide-container">
    <div class="container-fluid">
      <div class="carousel-caption col-md-5 col-sm-10">
        <h1>{{ settings[headline] | escape }}</h1>
        <p>{{ settings[content] | escape }}</p>
        <a class="btn btn-lg btn-default" href="{{ settings[link] | escape }}" role="button">{{ settings[link_text] | escape }}</a>
      </div>
    </div>
  </div>
</div>
{% endif %}
{% endfor %}

看起来每张幻灯片都有一个带有 link 的按钮,在“设置”中设置:

<a class="btn btn-lg btn-default" href="{{ settings[link] | escape }}" role="button">{{ settings[link_text] | escape }}</a>

如果您尚未将此功能用于其他用途,您可以修改此代码以将 link 添加到图像本身而不是按钮。那么你不需要改变任何其他东西。

例如:

<div class="item{% if i == 1 %} active {% endif %}">
  <a href="{{ settings[link] | escape }}"><img src="{{ image | asset_url }}" alt="{{ settings[headline] | escape }}" /></a>
  <div class="slide-container">
    ...
  </div>
</div>

如果您已经在使用按钮 link 做其他事情,您需要在“设置”中添加额外的字段来保存产品 link 并执行如下操作:

{% capture image_link %}slide_{{ i }}_image_link{% endcapture %}
...
<a href="{{ settings[image_link] | escape }}"><img src="{{ image | asset_url }}" alt="{{ settings[headline] | escape }}" /></a>