【发布时间】:2014-01-22 11:10:20
【问题描述】:
我正在尝试让 Magnific Popup 根据它使用的目标周围的其他元素显示标题。鉴于以下标记,我希望标题为“Foobar”。
<div class="container">
<article>
<h2>Foo</h2>
<figure>
<a href="img/img-1.jpg">
<img src="img/img-1.jpg" />
</a>
<figcaption>
bar1
</figcaption>
</figure>
</article>
<article>
<h2>Foo</h2>
<figure>
<a href="img/img-2.jpg">
<img src="img/img-2.jpg" />
</a>
<figcaption>
bar2
</figcaption>
</figure>
</article>
</div>
我在网上寻找解决方案(包括StackOverflow 上的这个)时尝试过的是以下代码:
$('.container').magnificPopup({
delegate: 'article figure a',
type: 'image',
titleSrc: function(item) {
return item.el.parent('article').find('h2').text() + item.el.parent('article').find('figcaption').text();
},
gallery:{enabled:true}
});
计算函数可能是一个问题,我什至尝试简单地返回一个常量字符串,但这似乎无济于事:
titleSrc: function(item) {
return "fake Foobar";
}
有人知道我做错了什么吗?
注意:如果我使用 titleSrc: 'title',它确实有效,但这不是我想要的行为,因为它让我不得不在标记中复制内容.
【问题讨论】:
-
你可以为同样的创建jsfiddle吗,jsfiddle.net
-
你确定 titleSrc 只使用一个字符串吗?查看文档,您应该将其放在图像下,例如
image: { titleSrc: ... }。
标签: javascript jquery html magnific-popup