2

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

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

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

window.location="pageB.html";

pageshow 事件将不再引发!问题出在哪里?我怎样才能使用 window.location 并且仍然能够捕捉到 pageshow 事件?

4

1 回答 1

3

当您使用window.locationor时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");
于 2013-11-29T20:50:55.327 回答