2013-02-02 209 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