我有一个JQuery Mobile应用程序,其中有许多页面相互链接。 如果我在页面A上放置一个链接并将href设置为页面B,则此脚本可以正常工作:
$(document).on('pageshow','#pageB',function(){
alert('hello!');
});
但是,如果我在页面A上放置一个按钮并为onclick事件编写此代码:
window.location="pageB.html";
Pageshow活动不再举起! 哪里有问题?我如何使用window.location并仍能捕获pageshow事件?
答案 0 :(得分:3)
当您使用window.location
或window.location.href
时,您通常在没有Ajax的情况下加载页面,并删除DOM中的所有先前页面。
如果在 pageA.html 中加载了JS库,则在加载 pageB.html 时它们将无效,因为它们已被删除。
因此,您需要将JS库放在 pageB.html 的<head>
中,以使JS代码/库正常工作。
使用
通过Ajax加载页面/ html文件// jQM 1.3.2 and below
$.mobile.changePage("#page_id" or "URL");
// jQM 1.4
$.mobile.pageContainer.pagecontainer("change", "#page_id" or "URL");