确认关闭Colorbox

时间:2010-07-10 13:45:54

标签: javascript colorbox

如果用户尝试关闭彩盒,我想显示简单的确认弹出框。我试过这段代码:

onCleanup:function(){ confirm('Are you sure'); }

显示确认框,但即使单击“取消”,彩色框也会关闭!

有人可以帮忙吗?

4 个答案:

答案 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'); }