如果用户尝试关闭彩盒,我想显示简单的确认弹出框。我试过这段代码:
onCleanup:function(){ confirm('Are you sure'); }
显示确认框,但即使单击“取消”,彩色框也会关闭!
有人可以帮忙吗?
答案 0 :(得分:8)
已经有nice example in the FAQ of colorbox
你必须重新定义colorbox'close method:
var originalClose = $.colorbox.close;
$.colorbox.close = function(){
if (confirm('Do you want to close this window?')) {
originalClose();
}
};
答案 1 :(得分:5)
我和FancyBox做过类似的事情。我认为最好的办法是在显示ColorBox时将事件处理程序绑定到关闭按钮:
onComplete:function(){
$("#cboxClose").click(function(e) {
// stop any other script from firing
e.stopPropagation();
if (confirm('Are you sure')) {
$.colorbox.close();
// ensure that the binding is removed when closed
$("#cboxClose").unbind();
}
});
}
答案 2 :(得分:5)
@Ken,你的例子对我来说非常适合......差不多。我必须做的唯一修改是在设置click函数之前取消绑定,因为由于某种原因,它会忽略我的if语句并且在第一次加载时仍然关闭。以下是我用于确认关闭彩盒的内容
$(".Add").colorbox({
onComplete:function(e){
$("#modalForm").ajaxForm(modalOptions);
$("#cboxClose").unbind();
$("#cboxClose").click(function(e){
e.stopPropagation();
if(confirm('Are you sure you want to cancel your changes?')){
$.colorbox.close();
$("#cboxClose").unbind();
}
});
}
});
答案 3 :(得分:0)
我不知道colorbox是否允许在你启动后取消关闭..
如果确实如此,则需要将代码更改为
onCleanup:function(){ return confirm('Are you sure'); }