JQuery Mobile,通过window.location重定向可以防止pageshow事件

时间:2013-11-29 20:05:11

标签: javascript html jquery-mobile window.location pageshow

我有一个JQuery Mobile应用程序,其中有许多页面相互链接。 如果我在页面A上放置一个链接并将href设置为页面B,则此脚本可以正常工作:

$(document).on('pageshow','#pageB',function(){
    alert('hello!');
});

但是,如果我在页面A上放置一个按钮并为onclick事件编写此代码:

window.location="pageB.html";

Pageshow活动不再举起! 哪里有问题?我如何使用window.location并仍能捕获pageshow事件?

1 个答案:

答案 0 :(得分:3)

当您使用window.locationwindow.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");