Пользовательский хэштег Photoswipe немедленно закрывает слайд-шоу

Тестирование на рабочем столе с помощью JQM не приводит к этой проблеме, поэтому ее трудно точно определить.

Предыстория: я создал код на стороне сервера (php), чтобы принять строку запроса и открыть галерею прямо на картинке. Но если пользователь хочет поделиться ссылкой при просмотре галереи на мобильном устройстве и, в частности, определенной фотографии; большинство мобильных браузеров используют основную ссылку, а не реальную фотографию. В событиях при пролистывании легко создать модификатор хэштега URL для URL-адреса с идентификатором фотографии (например, #photoID=987), но только если галерея изначально запущена без хэштегов. Затем легко поделиться с родными методами телефона.

(function(window, $, PhotoSwipe){
    $(document).ready(function(){
        //More Code is here but not needed fro this question

        $(photoSwipeInstance).bind(PhotoSwipe.EventTypes.onDisplayImage, function(e){
            var pid = codeThatGetsPhotoIDFromDisplayedIMGURL();
            window.location.hash = '&pid='+pid[0];

        });
        if(getUrlVars()["pid"]!=null || getUrlVars()["pid"]!=undefined)
        {
            console.log(getUrlVars()["pid"]);
            var photopid= getPhoto(getUrlVars()["pid"]);
            photoSwipeInstance.show(photopid);
        }
    });//End Documentstrong text
}(window, window.jQuery, window.Code.PhotoSwipe));
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

Проблема. Если галерея загружена с хэштегом, в галерее появится правильное изображение, но затем слайд-шоу сразу же закроется. И каждая фотография после этой точки работает одинаково, слайд-шоу открывается, а затем закрывается.

Я отключил все функции AJAX и привязки хэштегов, которые использует JQM. Эта функция URL-адреса хэштега работает должным образом при использовании настольного браузера, но не при использовании любого мобильного браузера.

Кто-нибудь еще пробовал эту функцию?

Я, вероятно, сделал это намного более запутанным, чем в моем описании.

Ответ: вместо этого не нужно отключать обработчики хэштегов JQM. Фотосвайпу нужно, чтобы этот обработчик был добавлен в опции: backButtonHideEnabled: false


person V Rodg    schedule 12.04.2013    source источник


Ответы (1)


Вместо этого не нужно было отключать обработчики хэштегов JQM. Фотосвайпу нужно, чтобы этот обработчик был добавлен к параметрам: backButtonHideEnabled: false

person V Rodg    schedule 12.04.2013