我写了以下代码:
html:
<a class="fancybox" caption="This is 1st title" href="http://fancyapps.com/fancybox/demo/1_b.jpg"><img src="http://fancyapps.com/fancybox/demo/1_s.jpg" data-page1 alt=""/></a>
<a class="fancybox" caption="This is 2nd title" href="http://fancyapps.com/fancybox/demo/2_b.jpg"><img src="http://fancyapps.com/fancybox/demo/2_s.jpg" data-page2 alt=""/></a>
JS:
$(".fancybox")
.fancybox({
beforeLoad: function () {
alert(this);
this.title = $(this.element).attr('caption');
}
});
我希望在图像显示之前显示从数据属性中获取的文本(page1或page2)。
请帮助修改我的代码。
答案 0 :(得分:1)
喜欢这个吗?
<a class="fancybox" caption="This is 1st title"
href="http://fancyapps.com/fancybox/demo/1_b.jpg">
<img src="http://fancyapps.com/fancybox/demo/1_s.jpg" data-page="1" alt=""/>
</a>
beforeLoad: function () {
console.log(this.element.find('img').data('page'));
console.log(this.element.attr('caption'));
// etc...
}
该元素已经是一个jQuery对象,因此无需将其传递给jQuery函数。另外,我建议您使用html5数据属性或有效的属性名称,即不使用&#34;标题&#34;。
答案 1 :(得分:0)
答案 2 :(得分:0)
好像你正在调用(警告)this
对象。您需要使用title
属性,如下所示: DEMO FIDDLE