获取Fancybox 2 Callback中活动项的类

时间:2012-05-08 10:50:04

标签: jquery fancybox

我试图通过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'
        }
    );  
});

2 个答案:

答案 0 :(得分:2)

您可以访问当前元素,如:

beforeLoad: function() {
    console.info( $(this.element) );
}

答案 1 :(得分:0)

试试这个:

var pdf_type_string = $(".lightbox").eq($(this).index(this)).attr('class')