Заменить изображения в галерее PhotoSwipe - PullRequest
3 голосов
/ 17 февраля 2012

У меня есть 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) также не помогло.

Есть идеи, как заполнить галерею новыми изображениями или удалить ее, чтобы я мог создать новую в том же месте?

Ответы [ 3 ]

8 голосов
/ 03 марта 2012

Единственный способ избежать этой ошибки - это unsetActivateInstance до detatch:

window.Code.PhotoSwipe.unsetActivateInstance(instance);

window.Code.PhotoSwipe.detatch(instance); 
2 голосов
/ 06 апреля 2012

Вы также можете скрыть текущий активный экземпляр, вместо того, чтобы отключить его, вызвав

window.Code.PhotoSwipe.activeInstances[0].instance.hide(0)
0 голосов
/ 24 февраля 2015

Я перепробовал все предложения выше, но ни одно из них не сработало.

Поэтому я решил просто никогда не создавать галерею для одного и того же идентификатора дважды:

    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);
    }
...