我试图弄清楚为什么动态插入到 Fancybox 3 渲染的 img 标记中的 alt 标记以看似随机的顺序出现。
我在 Jekyll 中有一个 YAML 列表,并且 alt 标签存储在图像之后:
- project:
-
name: Jupiter
thumb_url: jupiter-thumb.png
thumb_alt: Jupiter!
main:
- image: jupiter_pic_1, alt1
- image: jupiter_pic_2, alt2
- image: jupiter_pic_3, alt3
- image: jupiter_pic_4, alt4
我有一个使用 Fancybox 的循环:
{% for main in project.main %}
{% assign main = site.data.project[0].main[0] %}
{% assign data = main.image|split:"," %}
<a class="fancybox" data-fancybox="{{ project.name }}" href="{{ site.baseurl }}/{{ site.image_path }}/{{ data[2] | strip }}/{{ data[0] }}.png"
data-caption="{{ site.blurb }}" data-alt="{{ data[1] }}">
<img src="{{ site.baseurl }}/{{ site.image_path }}/{{ project.thumb_url }}" alt="{{ project.thumb_alt }}" /></a>
{% endfor %}
因此循环遍历 YAML 列表并获取相关信息(项目名称、URL、alt 标签)并将其插入到 Fancybox 标记中。
我有这个 jQuery,为渲染的 Fancybox 图像标记添加一个 alt 标记。我认为这个问题与这个的加载间隔有关:
$("[data-fancybox]").fancybox({
afterLoad: function (instance, slide) {
$(".fancybox-image").attr("alt", slide.opts.$orig.data('alt'));
}
});
{{ data[1] }}
保存项目 > 主中的 alt 标签。
当我加载页面并检查它时,我看到了这个:
<img class="fancybox-image" src=“/path/to/jupiter_pic_1.png" alt=" alt4">
但它应该是:
<img class="fancybox-image" src="/path/to/jupiter_pic_1.png" alt=" alt1">
当我滚动到下一张图片时,它应该是:
<img class="fancybox-image" src="/path/to/jupiter_pic_2.png" alt=" alt2">
但是,在页面源代码中,标记正是应有的方式:
<a class="fancybox" data-fancybox="Jupiter" href="/path/to/jupiter_pic_1.png"
data-caption="A caption" data-alt=" alt1”>
<img class="img-responsive" src="/path/to/jupiter-thumb.png" alt="Jupiter!" /></a>
知道为什么会这样吗?