替换PhotoSwipe库中的图像

时间:2012-02-17 15:21:43

标签: javascript photoswipe

我的页面上有一个PhotoSwipe图库,它以编程方式创建:

var instance = window.Code.PhotoSwipe.attach(image, options)

现在我想更新图库中的图像,或者将新图库放在同一位置。

为同一DOM Element创建新图库会忽略以下错误:

Code.PhotoSwipe.activateInstance:
Unable to active instance as another instance is already active for this target

使用Code.PhotoSwipe.detatch(instance)从Element中分离实例也无济于事。

有关如何使用新图片填充图库或删除它的任何想法,以便我可以在同一个地方创建一个新图片吗?

3 个答案:

答案 0 :(得分:8)

我发现避免该错误的唯一方法是在unsetActivateInstance之前调用detatch

window.Code.PhotoSwipe.unsetActivateInstance(instance);

window.Code.PhotoSwipe.detatch(instance); 

答案 1 :(得分:2)

您也可以隐藏当前的活动实例,而不是通过调用

来删除它
window.Code.PhotoSwipe.activeInstances[0].instance.hide(0)

答案 2 :(得分:0)

我尝试了上述所有建议,但没有一个能够很好地运作。

所以我的解决办法就是永远不要为同一个ID创建两次图库:

    instance = window.Code.PhotoSwipe.getInstance(myuniqueid);
    if (window.Code.Util.isNothing(instance)) {
        // Only initialize if there is no gallery with this ID already.
        myPhotoSwipe = window.Code.PhotoSwipe.attach(window.document.querySelectorAll(galleryimagesselector), {captionAndToolbarAutoHideDelay: 0, jQueryMobile: true, preventSlideshow: true, enableMouseWheel: false, enableKeyboard: false}, myuniqueid);
    }