$(document).on(“ pagecreate”,function(){
$ .jsonp({
网址:“ URL_TO_GET_JSONP”,
callbackParameter:'get_photo',
成功:函数(json,状态){
var photo = [];
var path ='URL_TO_GET_JSONP';
$ .each(json,function(a,b){
photo.push('');
photo.push('');
photo.push('');
});
$('。gallery')。html(photo.join(''));
var myPhotoSwipe = $(“。gallery a”)。photoSwipe({
enableMouseWheel:否,
})
},
错误:function(){
alert(“无法加载照片。”);
}
});
});
我的图库和浏览器后退按钮有问题。与小(x)按钮相反,用户更有可能按其后退按钮离开画廊。问题是,当您使用“后退”按钮时,您最终会进入空白页面,没有导航或仅包含页面背景。 (例如:http://www.photoswipe.com/latest/examples/04-jquery-mobile.html)
有没有解决的办法???
最佳答案
我仍在寻找自己的答案,但这也许会对您有所帮助。
jQuery Mobile使用哈希将页面保留在历史记录中并向后导航。当使用Photoswipe进入轮播模式时,事件处理程序将附加到back事件(关闭(x)按钮只不过是将历史记录返回到图库索引页面)。使用关闭(x)按钮可分离事件处理程序,并将控制权交还给jQuery Mobile。使用设备的后退按钮退出轮播无法正常工作,因为以某种方式将哈希列表弄乱了jQuery Mobile。
如果找到修复程序,我将在此处发布。
(已编辑以添加解决方案。)
我找到了适合我的解决方案。
您需要做两件事:
1)从body标签中删除ps-active类
2)找到所有photowipe实例并将其取消设置
以下代码为我工作:
$(document).bind('pagebeforechange', function(e) {
if ($('.ps-carousel').length) {
$('body').removeClass('ps-active');
$('div.gallery-page').each(function(){
var photoSwipe = window.Code.PhotoSwipe;
var photoSwipeInstance = photoSwipe.getInstance($(this).attr('id'));
if (typeof photoSwipeInstance != "undefined" && photoSwipeInstance != null) {
photoSwipe.unsetActivateInstance(photoSwipeInstance);
}
});
}
});
请注意,如果您没有使用与photowipe示例相同的类(例如http://www.photoswipe.com/latest/examples/04-jquery-mobile.html),则需要更改“ div.gallery-page”
关于jquery - Photoswipe + JQM:回溯事件问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12089688/