我有一个问题触发afterClose fancybox 2.1.4事件。
我有一个像这样的初始化脚本
$.fancybox({
maxWidth : 900,
maxHeight : 600,
fitToView : false,
width : '70%',
height : '70%',
autoSize : false,
closeClick : false,
openEffect : 'none',
closeEffect : 'none',
afterClose : function() {
alert('Hi!');
return;
}
});
我有一个DIV触发一个用HTML数据填充DIV的函数
<div onclick="projectDetail('+project.id+')">View Details</div>
填充fancybox内容DIV的触发器功能就是这个
function proyectDetail(id) {
var project = $('#project');
var result = '<h2>Lorem ipsum dolor sit amet</h2>\
<p>\
Lorem ipsum dolor sit amet, consectetur adipiscing elit.\
</p>';
project.append(result);
$.fancybox(project);
}
问题是 afterClose 事件不会被触发!
我需要在fancybox关闭后单击该div,打开fancybox并清除内容,因为弹出窗口可能会填充不同的数据,具体取决于给定的项目ID。
谢谢你的建议!
答案 0 :(得分:1)
afterClose
因为您没有设置任何内容而无法解雇。你以这种方式打开fancybox
$.fancybox(project);
...但是为了触发afterClose
,您必须将其设置为该功能中的API选项,如
$.fancybox(project, {
afterClose: function () {
alert("you have closed fancybox");
}
});
参见 JSFIDDLE