我知道当你使用关闭按钮时,你可以使用colorbox进行回调:
onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
然而,在成功的ajax请求之后,我正在从iframe本身关闭colorbox,如:
if(json.status == 'success') {
parent.$j.fn.colorbox.close();
}
我的问题是,如何通知父窗口彩盒已关闭,然后从那里运行回调?这可能吗?
答案 0 :(得分:5)
即使从iframe中关闭颜色框,也会触发onClosed
事件,并且它将在父级的上下文中触发。所以你可以把你的回调放在onClosed函数中:
$("a.pic").colorbox({
onClosed: function() {
myCallback;
//do other stuff
},
//or if everything is in the callback:
onClosed: myCallback,
href:"myDog.jpg"
});
就通知而言,如果一切都在您的回调中,那就是您所需要的一切。如果你有更多的事情要进行回调,你可以使用jQuery的触发器来触发另一个“关闭”的事件:
$.colorbox({
onClosed: function() {
$(window).trigger("colorboxClosed");
},
href:"myDog.jpg"
});
然后将函数绑定到该自定义事件:
$(window).bind("colorboxClosed", function() {
alert("closed");
});
如果您使用的是jQuery 1.7+并且不需要向后兼容,则建议您使用on
函数而不是bind
。