2013-02-02 58 views
0

我想防止意外关闭colorbox,所以我会在加载的iframe中显示/隐藏关闭按钮。ColorBox - 防止关闭

我阅读文档,但是这两个例子似乎不工作:

var originalClose = $.colorbox.close; 
$.colorbox.close = function(){ 
    var response; 
    if($('#cboxLoadedContent').find('form').length > 0){ 
     response = confirm('Do you want to close this window?'); 
     if(!response){ 
      return; // Do nothing. 
     } 
    } 
    originalClose(); 
}; 

<!-- calling colorbox's close method from within an iframe: --> 
<a href='#' onclick='parent.$.colorbox.close(); return false;'>close this iframe</a> 

...的颜色框只是不会关闭。我究竟做错了什么?

在控制台中我看到:

Uncaught TypeError: Cannot read property 'colorbox' of undefined 

谢谢!

回答

0

您需要在jquery库后包含colorbox.cssjquery.colorbox.js

您的第一个示例覆盖了colorbox close函数,第二个示例仅关闭了colorbox。

$('#cboxLoadedContent').find('form') 

在我的例子,我没有form,所以我删除form选择。

演示:http://jsfiddle.net/BY3ZK/

彩盒只是div,而不是iFrame,所以我从这里取出parent

parent.$.colorbox.close(); 

演示:http://jsfiddle.net/BY3ZK/1/

+0

多数民众赞成在事情,它的工作原理正常,但不是在一个iframe中。 – 3zzy

+0

@Nimbuz来自同一个域名的iframe? – webdeveloper

+0

不,外部域。我的意思是来自不同域的内容被加载到iframe中。 – 3zzy

0

它应该是:

parent.$('#yourElement').colorbox.close(); 

yourElement将包含颜色框iframe的ID /选择器。

+0

iframe包含灯箱?它的包含iframe的灯箱,和iframe有没有ID – 3zzy

0

尝试使用$( '#cboxClose')。去掉();关闭colorbox

+0

而不是总是添加,你可能会考虑标记你找到的重复。 – bummi