我遇到了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结果的intiale页面。
但是,单击后退按钮时,将显示initiale页面但为空白。 我希望得到ajax生成的最后结果,或者至少是重新启动ajax函数以显示initiale结果的方法。
我尝试过使用JQM缓存:
$.mobile.page.prototype.options.domCache = true;
但是这并没有解决我的问题,并且DOM元素看起来没有正确缓存(可能是因为我使用的是单独的html文件)
我已经在Chrome桌面和Android上使用phonegap测试我的应用程序,这两个问题都存在。
有没有人有正确的方法来做到这一点?
非常感谢
最诚挚的问候。
答案 0 :(得分:1)
您使用的页面事件绑定方式不正确。成功绑定页面事件的唯一方法是通过委托绑定。
所以代替这段代码:
$('#Favorites').on('pagebeforeshow', function(event) {
LaunchAjax();
});
使用此:
$(documents).on('pagebeforeshow', '#Favorites',function(event) {
LaunchAjax();
});