I am getting this error from firefox:
TypeError: $(...).lightGallery(...).destroy is not a function
I am using following plugin for play video and show image gallery https://github.com/sachinchoolur/lightGallery .
I want re-initialize lightGallery because I am using ajax to add element dynamically in container. It was working fine with previous version of lightGallery but it is not working with current version.
I am using following code.
// destroy previous gallery
$("#lightGallery2").lightGallery({
selector : '.image_gallery',
videojs: true,
download: false
}).destroy();
// re-initialize
$("#lightGallery2").lightGallery({
selector: '.image_gallery',
videojs: true,
download: false
});
Please suggest.
Thanks
The following code works for me:
$lg.on('onBeforeClose.lg',function(event, index, fromTouch, fromThumb){
try{$lg.data('lightGallery').destroy(true);}catch(ex){};
});
如果它是像大多数插件/小部件一样编写的,则应该这样调用destroy方法。
$("#lightGallery2").lightGallery("destroy");
You have to use the following method to destroy lightgallery version 1.2.x.
var $lg = $('#lightGallery2');
$lg.lightGallery({
selector : '.image_gallery',
videojs: true,
download: false
});
$lg.data('lightGallery').destroy(true);
Here is the docs
For destroy data you should add data attribute to your gallery then destroy it, for example if you apply gallery to all links:
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"]'});
};
Then:
$( myGallery ).data('lightGallery').destroy(true);
lightgallery();
I simply created a global variable. It allows me to perform the desired function.
var PLUGIN; // global variable
...
if(PLUGIN) PLUGIN.data('lightGallery').destroy(true); // destroy
PLUGIN = $("#lightGallery2").lightGallery();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.