2012-12-13 19 views
0

我試着用以下方式申請的fancybox「父」的說法(這裏說http://fancyapps.com/fancybox/#docs):的jQuery的fancybox「父」的說法不工作

$.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

我通過編輯fancybox的.js文件解決了這個問題。 我向fancybox開發者指出了這個問題,並希望他們能夠在未來的版本中修復它。

我會解釋,你必須使用文件
jquery.fancybox.js
版本2.1.3

轉到行1713進行修改,它看起來像

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

這是在Overlay助手的部分,在「創建」公共方法中更具體。

改變這一行看起來像

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
他們寫$(「形式:第一」)發現

因此,任何你上面的代碼應該工作正常。

希望這會有所幫助。

+0

這不再是necissary在2.1.5 – 1owk3y

0

Fancybox 2現在支持parent參數(至少在2.1.5中)。見截圖來自Fancyapps下面


Screenshot from Fancybox 2 API docs