我在这里发布问题和解决方案,以帮助遇到与我相同问题的任何人。
我的页面上有一个<div>
我想允许用户通过单击图标来“缩放”的页面。<div>
不隐藏。
我使用 fancyBox(fancyBox 主页)将其显示<div>
为一种模式窗口。我在其他灯箱类型插件上使用 fancyBox 的原因是它不会复制 的内容<div>
,而是移动它,因此所有表单元素等继续工作。问题是关闭fancyBox窗口后,在<div>
主页面上隐藏了。
解决方案:
我使用了fancyBox 2.1.2。
我使用了 JFKDIAZ 在 github ( https://github.com/fancyapps/fancyBox/issues/103 ) 上发布的解决方案,以确保在关闭 fancyBox 窗口后 div 被返回到其父级。
然后我使用 jquery show 功能再次显示 div 内联。
我的初始化花式框的代码如下。注意beforeLoad
andafterClose
函数来识别父级<div>
并将其<div>
返回给它的父级(感谢 JFKDIAZ)。注意添加$(inlineTarget).show();
以再次显示<div>
,使其不会消失。其余的是fancyBox 的标准初始化。
$(document).ready(function() {
$(".various").fancybox({
beforeLoad: function() {
inlineTarget = this.href;
parentNodename = $(inlineTarget).parent().get(0).tagName.toLowerCase();
$(inlineTarget).parent(parentNodename).addClass("returnTo");
},
afterClose: function() {
$(inlineTarget).appendTo(".returnTo");
$(".returnTo").removeClass("returnTo");
$(inlineTarget).show();
},
maxWidth: 880,
maxHeight: 600,
fitToView: false,
width: '70%',
height: '70%',
autoSize: false,
closeClick: false,
openEffect: 'none',
closeEffect: 'none'
});
});
我的代码和在 fancyBox 中<div>
显示的链接如下。<div>
请注意,父级<div>
必须有一个id
,以便代码可以识别它。类various
是我用来标识<a>
必须将 fancyBox 应用到哪个元素的标签。
<a href="#application_form" class="various">Zoom</a>
<div id="application_parent">
<div id="application_form">
Contents to display in fancyBox and return back here when complete.
</div>
</div>
这对我很有用。所有的表单元素都被移到了 fancyBox 并回到了它们在页面上的原始位置。
更新(从评论中移到小提琴的链接) - 有关演示,请参阅:http: //jsfiddle.net/z8e9q/3/
我希望这可以帮助有同样问题的人。