jquery FancyBox“父”参数不起作用

时间:2012-12-13 14:31:50

标签: jquery fancybox-2

我尝试以下列方式应用fancybox“parent”参数(如此处所述http://fancyapps.com/fancybox/#docs):

$.fancybox.open({ 
  autoSize: false, 
  width: 300, 
  height: 500, 
  content: $("#is-edit-div"), 
  parent: '.is-panel-edit-profile'
});

但它仍然被添加到身体的末端,

$.fancybox.open({ 
  autoSize: false, 
  width: 300, 
  height: 500, 
  content: $("#is-edit-div"), 
  parent: "form:first" 
});

也不工作。
有什么问题?

2 个答案:

答案 0 :(得分:2)

我通过编辑fancybox的.js文件解决了这个问题。 我向fancybox开发人员注意到了这个问题,希望他们能在将来的版本中修复它。

我将解释您必须使用文件修改的位置 jquery.fancybox.js
版本2.1.3

转到第1713行,看起来像

this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( 'body' );  

这是关于叠加助手的部分,更具体地说是“创建”公共方法。

将此行更改为

this.overlay = $('<div class="fancybox-overlay"></div>').appendTo(F.coming.parent || 'body' );

对我来说,我选择在表单中添加它:首先,这会在叠加灯箱中添加一个滚动条。然后,您需要更改CSS类.fancybox-overlay以使属性overflaw-y:hidden。

如果您想使用缩小版本
jquery.fancybox.pack.js
你可以从上面打包/缩小长版本。
或者只是修改他们的打包版本 搜索代码

<div class="fancybox-overlay">

而不是添加代码

F.coming.parent ||   

添加类似

的内容
b.coming.parent ||  

请注意:
写出当前fancybox文档中给出的父选项的值 http://fancyapps.com/fancybox/#docs

$(".fancybox").fancybox({  
    parent: "form:first" // jQuery selector  
});

请勿使用我在其他网站上找到的语法 https://github.com/fancyapps/fancyBox/issues/283
在哪里写$('形式:第一个')

因此,上述任何代码都可以正常使用。

希望这有帮助。

答案 1 :(得分:0)

Fancybox 2现在支持parent参数(至少在2.1.5中)。请参阅下面的Fancyapps截图


Screenshot from Fancybox 2 API docs