0

我的网站页脚中有一个时事通讯注册表单。在侧边栏中,我有一个链接,它使用注册表单的 div 作为其内容来触发一个花式框窗口。

正如预期的那样,这会导致表单从页脚中消失并在灯箱中弹出。

我关闭灯箱,它又回到了原来的样子。有一个非常烦人的例外:它被包裹在一个额外的div. 我打开和关闭灯箱窗口的次数越多div,它积累的越多。

现在,我通常只会让 fancybox 从隐藏的 div(表单的第二个副本)中抓取内容,但它是由 WordPress(mailchimp)中的插件生成的,我无法更改 #id 或表单名称。

所以这要么是一个错误,要么是 fancybox 的一个特性。我 99.9% 确定不是我做错了什么。有人有办法可以删除包装的 div 吗?我想我可以尝试放置一些 jquery 代码段,onClosed其中从#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/

4

1 回答 1

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,此错误在 v2.x 中不存在

于 2012-06-28T21:52:24.817 回答