如何在fancybox2回调函数中读取数据attr

时间:2014-08-27 11:45:39

标签: javascript jquery html fancybox-2

我有一个带有Fancybox2插件的简单图片库。

<a href="img1.jpg" class="fancybox" rel="group"><img src="img1.jpg" data-title="Awesome image" alt="image 1"></a>
<a href="img2.jpg" class="fancybox" rel="group"><img src="img2.jpg" data-title="Good indeed" alt="image 2"></a>
<!-- and so on -->

我尝试做的是捕捉当前图片的data-title beforeShow回调函数。

我的尝试是:

beforeShow : function() {
    var title = this.getAttribute('data-title');
    console.log(title); // nope does not work
}

我想知道因为这不起作用。任何帮助非常感谢。

编辑:我还尝试了.attr('data-title');.data('title');,但它给了我undefined

答案:好的家伙我发现了

var title = this.element.find('img').data('title');

诀窍!谢谢!

1 个答案:

答案 0 :(得分:0)

好吧,似乎Fancybox&#39;回调正在使用自己的this元素,这就是

的原因
$(this).data('title'); // DOESN'T WORK

$(this).attr('data'); // DOESN'T WORK

抛出undefined。我在文档中找到了解决方案:

var title = this.element.find('img').data('title');