JQM を使用したデスクトップでのテストではこの問題は発生しないため、特定するのは困難です。
バックストーリー:サーバー側コード (php) を作成して、クエリ文字列を受け取り、ギャラリーを開いて写真を直接表示するようにしました。しかし、ユーザーがモバイル デバイスでギャラリー、特に特定の写真を閲覧しているときにリンクを共有したい場合。ほとんどのモバイル ブラウザは、実際の写真ではなくコア リンクを共有します。イベントでスワイプすると、写真 ID (たとえば、#photoID=987) を使用して URL の URL ハッシュタグ修飾子を作成するのは簡単ですが、ギャラリーが最初にハッシュタグなしで開始された場合に限ります。その後、電話のネイティブ メソッドと簡単に共有できます。
(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 のハッシュタグ ハンドラーをオフにする必要はありませんでした。Photoswipe では、次のハンドラーをオプションに追加する必要がありました。backButtonHideEnabled: false