我从firefox收到此错误:
TypeError: $(...).lightGallery(...).destroy is not a function
我正在使用以下插件播放视频并显示图片库 https://github.com/sachinchoolur/lightGallery
我想重新初始化lightGallery,因为我使用ajax在容器中动态添加元素。它与之前版本的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
});
请建议。
由于
答案 0 :(得分:3)
以下代码适用于我:
$lg.on('onBeforeClose.lg',function(event, index, fromTouch, fromThumb){
try{$lg.data('lightGallery').destroy(true);}catch(ex){};
});
答案 1 :(得分:0)
如果它像大多数插件/小部件一样编写,你应该像这样调用destroy方法。
$("#lightGallery2").lightGallery("destroy");
答案 2 :(得分:0)
对于销毁数据,您应该将数据属性添加到图库,然后将其销毁,例如,如果您将图库应用于所有链接:
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();