我的网站页脚中有一份简报注册表格。在侧边栏中,我有一个链接,使用注册表单的div作为其内容触发fancybox窗口。
正如预期的那样,这会导致表单从页脚中消失并弹出到灯箱中。
我关闭了灯箱,它又回到原来的样子。有一个非常恼人的例外:它包含在一个额外的div
中。我打开和关闭灯箱窗口的次数越多,它累积的div
就越多。
现在,我通常会让fancybox从隐藏的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 :(得分: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中不存在此错误