我有一个 JQuery Mobile 应用程序,其中许多页面相互链接。 如果我在页面 A 上放置一个链接并将 href 设置为页面 B,则此脚本可以正常工作:
$(document).on('pageshow','#pageB',function(){
alert('hello!');
});
但是如果我在页面 A 上放置一个按钮并为 onclick 事件编写以下代码:
window.location="pageB.html";
pageshow 事件将不再引发! 问题出在哪里?如何使用 window.location 并且仍然能够捕获 pageshow 事件?
最佳答案
当您使用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");
关于javascript - JQuery Mobile,通过 window.location 重定向可防止 pageshow 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20292693/