2012-06-28 103 views
0

我在我的網站的頁腳有一個簡報註冊表單。在側邊欄中,我有一個鏈接,它使用註冊表單的div作爲其內容來觸發fancybox窗口。Fancybox(1.3)正在爲我的內容添加額外的div

正如預期的那樣,這會導致窗體從頁腳中消失,並在燈箱中彈出。

我關閉了燈箱,它回到它是如何。有一個非常惱人的例外:它被包裹在一個額外的div。我打開和關閉燈箱窗口的次數越多,積累的次數就越多。

現在,我通常只會從一個隱藏的div(表單的第二個副本)抓取內容,但它通過WordPress中的插件(mailchimp)生成,並且我無法更改#id或表格名稱。

所以這是一個錯誤或fancybox的功能。我99.9%肯定它不是我做錯了什麼。任何人有辦法我可以刪除包裝的div?我猜我可以嘗試在onClosed中放入一些jquery片段,它可以從#email_signup中刪除div ...但是我可能會等到明天才能這樣做。

相關的代碼:

JS

jQuery("#signMeUpBox a").fancybox({width:250}); 

HTML

<a href="#email_signup"><img src="...." /></a> 

繼承人一對夫婦後的頁腳代碼的fancybox打開/關閉:

<div style="width:auto;height:auto;overflow: auto;position:relative;"> 
<div style="width:auto;height:auto;overflow: auto;position:relative;"> 

    <div id="email_signup" style=""> 
     <h1 style="">email signup</h1> 
     <div id="mc_signup" style=""> 
      <form method="post" action="#mc_signup" id="mc_signup_form" style=""> 
       <!-- ... --> 
      </form><!-- /mc_signup_form --> 
     </div><!-- /mc_signup_container --> 
    </div> 

</div> 
</div> 

編輯

我放在一起的jsfiddle來說明情況。 http://jsfiddle.net/UD9P9/

+0

考慮升級到fancybox 2 –

+0

我可能應該只購買fb2的許可證...不知道爲什麼我總是很不情願購買軟件。 –

回答

1

是的,這是使用inline內容時已知的錯誤。作爲一種變通方法,添加onCleanup回調如下:

jQuery("#signMeUpBox a").fancybox({ 
"width":250, 
"onCleanup": function() { 
    var myContent = this.href; 
    jQuery(myContent).unwrap(); 
} 
}); 

您可以在這裏瞭解更多:http://groups.google.com/group/fancybox/browse_thread/thread/fab7b6d81a173b33

注意:解決方法是v1.3.x,這個bug不存在v2.x