Родительский аргумент jquery FancyBox не работает

Я пытался применить «родительский» аргумент fancybox следующим образом (как указано здесь 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" 
});

тоже не работает.
В чем проблема?


person user1901267    schedule 13.12.2012    source источник


Ответы (2)


Я решил эту проблему, отредактировав файл .js fancybox. Я сообщил об этой проблеме разработчикам 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
где пишут $('form:first')

Таким образом, любой из приведенных выше кодов должен работать нормально.

Надеюсь это поможет.

person johanna7    schedule 06.01.2013
comment
Это больше не требуется в 2.1.5 - person 1owk3y; 30.01.2015

Fancybox 2 теперь поддерживает аргумент parent (по крайней мере, в 2.1.5). Смотрите скриншот из Fancyapps ниже


Скриншот из документации API Fancybox 2

person 1owk3y    schedule 29.01.2015