摧毁光库并重新启动它会导致问题

时间:2018-01-24 13:36:37

标签: javascript jquery lightgallery

我有一个带有id" tempPictures"的div。我想破坏画廊并在关闭时重新启动它,然后重新打开。它在第一次单击时工作正常,但第二次,它在相同的选项卡中打开图像而不是光库。 Any1遇到了这样的问题?

function getReplyImages(id) {
    $formData = {
        "_token": $token,
        "inmate_reply_id": id
    }
    ajaxStartStop();
    $.ajax({
        url: $inmateReplyAttachmentsRoute,
        type: 'POST',
        data: $formData,
        success: function (data) {
            var html = '';
            Object.keys(data).forEach(function (key) {
                html += '<a href="' + data[key].file + '">';
                html += '<img src="' + data[key].thumnail + '" />';
                html += '</a>';
            });
            $('#tempPictures').html(html);
            if(!$galleryLoaded) {
                console.log('loaded');
                $('#tempPictures').lightGallery({thumbnail: true});
                $('#tempPictures > a:first > img').trigger('click');
            }
            $galleryLoaded = true;

        },
        error: function ($error) {
            notificationMsg($error, error);
        }
    });
}

$(function () {
    $("#tempPictures > a:first > img").click(function () {
        return false;
    });
});

$('#tempPictures').on('onCloseAfter.lg',function(event, index, fromTouch, fromThumb){
    $('#tempPictures').lightGallery({destroy: true});
    $('#tempPictures').html('');
    $galleryLoaded = false;
});

1 个答案:

答案 0 :(得分:1)

我明白了。我没有正确地摧毁光库。必须这样做。

$('#tempPictures').data('lightGallery').destroy(true);