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

标签 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 事件?

最佳答案

当您使用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/

相关文章:

javascript - 如何使用 Cypress 控制元素中的文本?

css - 在 jquerymobile 中,调整大小后如何使图标居中?

jQuery Mobile 主题 - 在哪里获取它们?重新调整 jQTouch 主题的用途?

jquery - 将用户名和密码发送到身份验证服务器时应考虑哪些最佳实践?

javascript - 从可折叠标题内的按钮调用函数而不展开

javascript - 更改 CSS 以允许使用 Javascript 控制 DIV 位置

javascript - 对第 3 方 SDK Intent 调用 startActivityForResult 时出错

jquery - fadeIn DIV 影响其他 div 值

jquery - 在相关下拉列表中启用/禁用选项,而不触发具有相同类别的所有下拉列表

php - CSS + jQ 插件阻止 AJAX 调用/事件监听器工作?