我有一个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关闭就好了。
那么如何通过点击实现这两个目标?
答案 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