fancybox3 несколько экземпляров - PullRequest
0 голосов
/ 16 октября 2018

Мне нужна помощь с fancybox v3 и несколькими экземплярами.У меня есть вызов AJAX, и если вызов успешен, тогда мне нужно показать две необычные коробки с информацией.Теперь я могу показывать на fancyboxes, но после закрытия он создает новый видимый DIV.Вы понимаете?Я в том числе скриншоты проблемы.Спасибо

После закрытия fancyboxes: After closing fancyboxes

HTML перед fancyboxes: HTML before fancyboxes

HTML перед fancyboxes:HTML after closing fancyboxes

Мой код: #notification, # popup-related определены в html.После загрузки я должен добавить открытый класс (display: block! Важный).Без этого он не показывает div #popuprelated.Я попытался добавить removeclass и т. Д. В afterclose, но безуспешно.

   $('#notification').html('<div class="popup- 
   container">tetetetetetete</div>');

      var html = '';
      var data = json['products_related'];
      html += '<div class="popup>sdfdsfdsfsdfds</div>'

  $('#popup-related').html(html);

  $.fancybox.open({
    src  : '#notification, #popup-related',
    closeExisting: false,
    scrolling: 'no',
    iframe : {
      scrolling : 'no'
    },
    afterLoad: function () {
        $("#popup-related").addClass('opened');
    },
    afterClose: function () {

    },
  });

1 Ответ

0 голосов
/ 16 октября 2018

Извините, я вообще не смог понять вашу проблему.

«Мне нужно показать две коробки с информацией» - что вы понимаете под «двумя коробками»?Вы действительно создаете два экземпляра, например, вы выполняете $ .fancybox.open (что-то) два раза?

"после закрытия он создает новый такой же видимый DIV".- fancybox не создает никаких новых элементов на вашей странице.Если вы отображаете существующий элемент dom (например, встроенный элемент), то fancybox перемещает его в нужное место и затем закрывает после закрытия.

src : '#notification, #popup-related' - fancybox не предназначен для одновременного отображения нескольких элементов, вам нужно обернуть эти элементы в какую-нибудь оболочку и отобразить это вместо этого.

Редактировать: Другой альтернативой может быть отображение вашего контента в виде "html", например:

$.fancybox.open({ 
    src: $('#notification').clone().append( $('#popup-related').clone().show() ), 
    type: 'html'
});
...