Как уничтожить и заново инициализировать Lightgallery. js - PullRequest
0 голосов
/ 10 апреля 2020

Я использую lightgallery на своей странице, которая работает нормально. Я добавил функцию фильтрации в галерею, поэтому теперь нужно уничтожить и перестроить мою галерею, чтобы отразить изменения в содержимом галереи. У меня есть это до сих пор:

источник. js

import 'lightgallery.js';


var gallery = document.getElementById('gallerywrapper');

  if(gallery) {
    lightGallery(gallery, {
      download: false,
      counter: false,
      selector: '.item.active'
    });
  }

  var galleryFilterButtons = document.querySelectorAll('.gallery-filter-button');

  for(var i = 0; i<galleryFilterButtons.length; i++) {
    galleryFilterButtons[i].addEventListener("click", function(){
      // destroy and rebuild here...
    });
  }

Я не могу заставить функцию уничтожения работать вообще, кто-нибудь может дать какие-либо указатели

1 Ответ

0 голосов
/ 10 апреля 2020

Документация показывает, что вы можете уничтожить с помощью:

 window.lgData[gallery.getAttribute('lg-uid')].destroy(true);

, а затем просто снова инициализировать. Так что в вашем случае это будет:

for (var i = 0; i < galleryFilterButtons.length; i++) {
    galleryFilterButtons[i].addEventListener("click", function(){
        window.lgData[gallery.getAttribute('lg-uid')].destroy(true);
        lightGallery(gallery); 
    });
}

Вы можете увидеть пример использования здесь .

...