在我的jQuery Mobile中,我有2个页面,index.html和test.html。索引页面中有一个<p>
标记,其中包含一个类,因此当我的javascript上点击<p>
标记时,它希望加载test.html。
但是当索引页面加载测试页面时,使用jQuery Mobile,它不在DOM中。因此,为了进入测试页面并替换test.html中div的内容,必须先将其加载到DOM中。所以这就是我在做的事情:
当点击try2时,我做一个加载页面将其放入DOM,然后我用新的html替换div,然后我切换到页面。 div的html永远不会改变。
$('.try2')
.click(function(){
$.mobile.loadPage( 'test.html', { showLoadMsg: false } );
$('#mytest').html('i am here now').fadeIn('slow');
$.mobile.changePage( "test.html", { transition: "slideup"} );
});
答案 0 :(得分:0)
使用指向第二页的链接上的data-prefetch属性预取页面。文档:http://jquerymobile.com/demos/1.1.0/docs/pages/page-cache.html
然后绑定到pageinit或pageshow事件以在第二页转换到视图之前更新div。
您当前的代码不起作用,因为事件处理程序中的前两行是异步的,因此要使用它们,您必须使用异步函数的回调函数。
<强>更新强>
如果您想预先缓存一个页面但没有直接链接到该页面,您可以随时创建一个虚拟链接并将其从视图中隐藏:
<a data-precache href="page2.html" style="display:none;"></a>