覆盖colorbox onClose

时间:2012-03-28 08:39:38

标签: javascript jquery colorbox

我正在使用以下效果很好的。我只是想知道在加载框后是否可以覆盖onClosed

    $.colorbox({href:"fff.html",
    onClosed:function(){ window.parent.location.reload(true); }
    });

我知道在加载框后我可以使用resize函数来调整尺寸。是否可以类似地使用关闭函数来实现我的目标?

3 个答案:

答案 0 :(得分:3)

你可以按照你的尝试方式完成

$.colorbox({href:"fff.html",
    onClosed:function(){ 
       //This is your method that triggers onClose
       // SO go ahead, override it 

       //You can also call multiple function on it like

       function1(); //call function 1
       function2(); //call function 2
    }
});

或者,您可以将函数名称传递给onClosed(),就像

一样
$.colorbox({href:"fff.html",
    onClosed: overrideFunction
});

function overrideFunction() {
  /your overriding function
}

答案 1 :(得分:1)

虽然可能有更清洁的解决方案,但您可以做的是

// in the window scope! Can be explicitely set with
// window.onColorboxClose without var before it.
var onColorboxClose = function(){
};

$.colorbox({
  href:"fff.html",
  onClosed:onColorboxClose 
});

然后覆盖该函数,而不是将其作为闭包传递给颜色框的属性。

答案 2 :(得分:0)

另一种解决方法是覆盖close事件以完全控制关闭事件处理

    var c_close = $.fn.colorbox.close;
    // Now disable the close function
    $.fn.colorbox.close = function(){

        if(confirm('Are you sure?')){
            c_close();
        } else {
            return false;
        }
    };