form2.html有2个部分:
(1)#SiteForm和
(2)#SiteSearched
点击#SiteForm上的按钮应拨打 $。mobile.changePage(' ../ site3 / form2.html#SiteSearched');
现在这里是奇怪的部分。
如果我直接加载页面form2.html并按下按钮,它会工作,我会看到#SiteSearched JQM页面。
但是,如果我从form1.html开始,单击按钮进入form2.html#SiteForm,然后单击按钮,附加函数中的所有内容都会执行,但调用 $ .mobile.changePage(&#39)的行除外; ../ site3 / form2.html#SiteSearched');
我知道这部分是由AJAX加载的,因为changePage命令不起作用吗?
(注意:Form1可能会将数据填入我不想丢失的表单中.Form2.html的目的是进行搜索并以某种方式将结果扔回Form1,这就是我做事的原因这样。)
答案 0 :(得分:1)
你应该先阅读官方jQuery Mobile文档,然后在这里发布,一切都在那里解释,但是让我给你一个简短的解释。
jQuery Mobile有两个模板解决方案,一个是多页面,另一个是多个html。你已经知道了,因为你正在混合它们。但是,你不知道的是(从AJAX页面处理的角度来看):
只有第一个HTML页面完全加载到DOM中,所有内容都被加载,包括HEAD内容。因此,如果初始HTML页面有多个 data-role =" page" < div>容器,每个容器都会加载到DOM中。
但是,每个后续页面仅部分加载。基本上,如果你第二,第三......页面有多个 data-role =" page" div容器,只有第一个将加载到< DOM>。 jQuery Mobile将丢弃其他所有内容。
所以在你的情况下,如果form2.html有:
(1) #SiteForm 和 (2) #SiteSearched
jQuery Mobile仅加载 #SiteForm , #SiteSearched 将被丢弃。
基本上这条线不起作用:
$.mobile.changePage('../site3/form2.html#SiteSearched');
正如我告诉你的,你不能在后续页面中挑选特定页面。你只能用这个:
$.mobile.changePage('../site3/form2.html');
jQuery Mobile将在 form2.html 页面中向您显示第一个 data-role =" page" 。