2016-06-29 7 views
1

Использование последних fancybox и jQuery 2.2.3 Я пытаюсь открыть всплывающее окно «child», нажав кнопку в «родительском» всплывающем окне, и повторно открыть родительское всплывающее окно после закрытия всплывающего окна.Fancybox не может вскрыть всплывающее окно: Uncaught TypeError: Невозможно прочитать свойство 'width' от нуля

По себе всплывающие окна открываются и закрываются просто отлично. Но когда я пытаюсь снова открыть родительский элемент, он отображается на секунду, а затем исчезает с сообщением в консоли: "jquery.fancybox.pack.js: 40 Uncaught TypeError: Невозможно прочитать свойство 'width' of null". Это указывает на следующее: this.overlay.width(a).height("100%");

Когда я пытаюсь повторно открыть родительский файл вручную, intstead я вижу всплывающее окно с «Запрошенный контент не может быть загружен. Повторите попытку позже».

Я попробовал два подхода, и не в состоянии так же

(.fancybox к форме кнопки внутри родителя, нажав которой вы открытый ребенка):

1)

$(".fancybox-to-form").on("click", function(){ 
    var parentPopup = $(this).closest(".wall-popup"); 

    $.fancybox.open($("#popup-form"), {   
     afterClose: function(){ 
      $.fancybox.open({href: '#wall-popup--1'}); 
     } 
    }); 
}); 

2)

$(".fancybox-to-form").fancybox({ 
    afterClose: function(){ 
     var parentPopup = $(this.element).closest(".wall-popup"); 
     $.fancybox.open(parentPopup); 
    } 
}); 

Помощь была бы оценена.

ответ

1

Вы можете попробовать setTimeout для второго fancybox. (~ 100 мс) Возможно, первый фейсбокс не закрыт полностью во время отображения второго.