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

how to read data attr in fancybox2 callback function

本文关键字:读取 数据属性 函数 回调 fancybox2      更新时间:2023-09-26

我有一个简单的图片库,里面有很棒的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 -->

我想做的是通过当前Image的beforeShow回调函数来捕获data-title

我的尝试是:

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');

成功了!谢谢

好吧,Fancybox的回调似乎使用了一种自己的this元素,这就是的原因

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

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

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

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