0

Firefox から次のエラーが表示されます。

TypeError: $(...).lightGallery(...).destroy is not a function

ビデオの再生と画像ギャラリーの表示に次のプラグインを使用しています https://github.com/sachinchoolur/lightGallery

ajaxを使用してコンテナに要素を動的に追加しているため、lightGalleryを再初期化したい。以前のバージョンの lightGallery では問題なく動作していましたが、現在のバージョンでは動作しません。

次のコードを使用しています。

// destroy previous gallery
$("#lightGallery2").lightGallery({
  selector : '.image_gallery',
  videojs: true,
  download: false
}).destroy();

// re-initialize
$("#lightGallery2").lightGallery({
  selector: '.image_gallery',
  videojs: true,
  download: false
});

提案してください。

ありがとう

4

5 に答える 5

8

次のコードは私にとってはうまくいきます:

$lg.on('onBeforeClose.lg',function(event, index, fromTouch, fromThumb){
    try{$lg.data('lightGallery').destroy(true);}catch(ex){};
});
于 2016-06-20T18:47:24.070 に答える
1

データを破棄するには、データ属性をギャラリーに追加してから破棄する必要があります。たとえば、ギャラリーをすべてのリンクに適用する場合は、次のようになります。

var myGallery = 'body',
    lightgallery = function() {
         $( myGallery ).attr('data-lightGallery', '1');
         $( myGallery ).lightGallery({selector: 'a[href$=".jpg"], a[href$=".jpeg"], a[href$=".png"], a[href$=".gif"]'});
    };

それで:

$( myGallery ).data('lightGallery').destroy(true);
lightgallery();
于 2016-03-29T18:41:06.460 に答える