我正在开发一个WordPress主题并将Fancybox灯箱插件内置到我的代码中。这很好,除了一个小问题。
但我会先向您展示代码,这样就更容易解释了。
<dl class='gallery-item'>
<dt class='gallery-icon'>
<a href='image.jpg' title='something'><img width="150" height="150" src="image.jpg" class="attachment-thumbnail" title="something" /></a>
</dt>
<dd class='wp-caption-text gallery-caption'>
Description, that should be displayed as title...
</dd>
</dl>这是WordPress标准库的一个图库项的输出。我想要做的是,将dd-标记中的描述附加到lightbox图像标题(在ht emoment上显示a-tag的标题,这是一个字母数字字符串--不太适合用户使用)。
为了将某些内容分配给lightbox标题,必须在lightbox的初始化函数中调用以下javascript。(这段代码实际上将第一个..wp标题-text元素的内容分配给每个图像标题。)
$(document).ready(function(){
$("a[href$='.jpg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox({
beforeLoad: function(){
var caption = $('.wp-caption-text').html();
this.title = caption;
}
});
});上面的代码按预期工作,但这意味着只有类wp标题文本的第一个元素才会分配给lightbox和每个图像。但我只想得到相应的wp标题文本的图像,已经打开了在照明箱。因此,我必须使用$(this)之类的内容,然后导航到相应的wp标题文本,并将文本分配给标题变量。
我正为最后一点和希望而挣扎,你可以帮我。这不应该太难,但我现在没有头绪。
谢谢
卢卡斯
发布于 2012-09-21 22:59:02
如果标记发生变化,这将是稳定的。如果这不起作用,那就意味着this不是我们所期望的那样,我们需要弄清楚它是什么。还请注意,我使用的是.text()而不是.html()。如果您决定在.wp-capition-text中添加一些标记(例如,图标或其他东西),这仍然会捕获文本。
var caption = $(this.element).closest('.gallery-item').find('.wp-caption-text').text();发布于 2012-09-21 22:45:25
尝尝这个
var caption = $(this).parent().parent().find('.wp-caption-text').html();这是如果这个对应于当前锚点
https://stackoverflow.com/questions/12539043
复制相似问题