我有一个JQuery Mobile应用程序,其中有许多页面相互链接。如果我在a页上放一个链接,并将href设置为B页,这个脚本就可以正常工作:
$(document).on('pageshow','#pageB',function(){
alert('hello!');
});
但如果我在a页上放一个按钮,并为onclick事件写下以下代码:
window.location="pageB.html";
页面秀活动不会再增加了!问题出在哪里?如何使用window.location仍然能够捕捉页面显示事件?
使用window.location
或window.location.href
时,正常加载不带Ajax的页面,并删除DOM中所有以前的页面。
如果在pageA.html中加载了JS库,则在加载pageB.html时它们将不起作用,因为它们已被删除。
因此,您需要将JS库放置在pageB.html的<head>
中,以使JS代码/库正常工作。
更新
使用通过Ajax加载pages/html文件
// jQM 1.3.2 and below
$.mobile.changePage("#page_id" or "URL");
// jQM 1.4
$.mobile.pageContainer.pagecontainer("change", "#page_id" or "URL");