JQM后退按钮丢失上一页数据



我对Jquery mobile和后退按钮功能有一个问题。

我有一个页面,在显示时在远程服务器上运行ajax请求。Ajax是通过pagebeforeshow事件启动的。这个事件被附加到div与[data-role="page"]属性,因为我使用多个html文件:

 <div data-role="page" data-theme="b" id="Favorites">
   <div data-role="content" data-theme="b">
    <div id="Ajax">
            DISPLAY AJAX RESULT CONTAINING LINK TO OTHER HTML PAGE
        </div>
    </div>
 </div>

javascript:

$('#Favorites').on('pagebeforeshow', function(event) {
   LaunchAjax();   
});     

当页面第一次显示时,这可以正常工作。但是,ajax结果包含到用户可以跟随的另一个页面的链接。当用户跟随链接时,我显示一个返回按钮(使用jquery mobile生成),以便他返回到包含ajax结果的初始页面。

但是当点击后退按钮时,初始页面显示为空白。我想有最后的结果生成的ajax显示或至少一种方式来重新启动ajax函数来显示初始结果。

我试着玩JQM缓存:

 $.mobile.page.prototype.options.domCache = true;

但这并没有解决我的问题,DOM元素看起来没有正确缓存(可能是因为我使用单独的html文件)

我在Chrome桌面和Android上使用phonegap测试了我的应用程序,这两个问题都存在。

有人有正确的方法吗?

Thanks a lot

问好。

您使用的页面事件绑定方式不正确。成功绑定页面事件的唯一方法是通过委托绑定。

所以不用这段代码:

$('#Favorites').on('pagebeforeshow', function(event) {
    LaunchAjax();   
});
使用

:

$(documents).on('pagebeforeshow', '#Favorites',function(event) {
    LaunchAjax();   
});    

最新更新