0

我对 Jquery 移动和后退按钮功能有疑问。

我有一个页面在显示时在远程服务器上运行 ajax 请求。Ajax 通过 pagebeforeshow 事件启动。此事件附加到具有 [data-role="page"] 属性的 div,因为我正在使用多个 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 文件)

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

有没有人有正确的方法来做到这一点?

非常感谢

此致。

4

1 回答 1

1

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

所以代替这段代码:

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

用这个:

$(documents).on('pagebeforeshow', '#Favorites',function(event) {
    LaunchAjax();   
});    
于 2013-05-09T19:58:49.617 回答