从iframe关闭colorbox时从父级回调

时间:2011-12-13 18:44:21

标签: javascript jquery colorbox

我知道当你使用关闭按钮时,你可以使用colorbox进行回调:

onClosed:function(){ alert('onClosed: colorbox has completely closed'); }

然而,在成功的ajax请求之后,我正在从iframe本身关闭colorbox,如:

if(json.status == 'success') {
parent.$j.fn.colorbox.close();
}

我的问题是,如何通知父窗口彩盒已关闭,然后从那里运行回调?这可能吗?

1 个答案:

答案 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