单击带链接的弹出图像时如何关闭FancyBox?

时间:2015-08-06 08:25:43

标签: jquery fancybox fancybox-2

我有一个FancyBox,当点击弹出的图像时会打开一个链接:

$(".fancybox").fancybox({
    afterShow: function () {
        $(".fancybox-image").wrap("<a href='"+$(this.element).attr('name')+"' target='_blank' />");
    }
});

现在,我想在点击照片时关闭FancyBox,所以我添加了closeClick

$(".fancybox").fancybox({
    closeClick: true,
    afterShow: function () {
        $(".fancybox-image").wrap("<a href='"+$(this.element).attr('name')+"' target='_blank' />");
    }
});

这不起作用。链接打开正常,但FancyBox没有关闭。

如果我删除aftershow FancyBox关闭就好了。

那么如何通过点击实现这两个目标?

1 个答案:

答案 0 :(得分:2)

You can chain several jQuery methods to the same selector, so after .wrap() you could chain an .on() method where you could bind a click event that would trigger the $.fancybox.close() public method, like :

jQuery(document).ready(function ($) {
    $(".fancybox").fancybox({
        // API options
        afterShow: function () {
            $(".fancybox-image")
            // first method
            .wrap("<a href='" + $(this.element).attr('name') + "' target='_blank' />")
            // second method
            .on("click", function () {
                $.fancybox.close(true);
            });
        }
    }); // fancybox
}); // ready

See JSFIDDLE