我试图通过beforeLoad回调来获取当前活动的fancybox链接的类。
HTML示例:
<a href="example.png" class="lightbox pdf-opening">Link</a>
<a href="example2.png" class="lightbox pdf-closing">Link</a>
jQuery / Fancybox代码:
$(document).ready(function() {
$(".lightbox").fancybox(
{
beforeLoad: function(){
var pdf_type_string = $(".lightbox").eq(this.index).attr('class').split(' ').slice(-1);
var test = pdf_type_string.toString();
var pdf_type = test.substr(4);
alert(pdf_type);
},
title: '<a class="lightbox_link_to_tickets" href="/your-visit/booking-online/">Book your tickets here</a>',
type: 'image'
}
);
});
this.index总是返回0,即使点击第二个链接,(理论上对我来说)点击第二个链接时应返回1 ...
非常感谢任何帮助。
保
解决方案
我的解决方案如下:
$(document).ready(function() {
$(".lightbox").fancybox(
{
beforeLoad: function(){
var pdf_type_object = $(this.element).attr('class').split(' ').slice(-1);
var pdf_type_string = pdf_type_object.toString();
var pdf_type = pdf_type_string.substr(4);
this.title = '<a class="lightbox_link_to_tickets" href="/your-visit/booking-online/">Book your tickets here</a> - <a class="lightbox_link_to_tickets" href="/inc/images/your-visit/timetables-and-fares/'+pdf_type+'.pdf">Downloadable PDF</a>';
},
type: 'image'
}
);
});
答案 0 :(得分:2)
您可以访问当前元素,如:
beforeLoad: function() {
console.info( $(this.element) );
}
答案 1 :(得分:0)
试试这个:
var pdf_type_string = $(".lightbox").eq($(this).index(this)).attr('class')