【问题标题】:JQuery Mobile, redirecting by window.location prevents pageshow eventJQuery Mobile,通过 window.location 重定向可防止 pageshow 事件
【发布时间】:2013-11-29 20:05:10
【问题描述】:

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

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

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

window.location="pageB.html";

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢,实际上我更喜欢用 Ajax 加载 pageB。如何在按钮的单击事件中使用 Ajax 加载另一个页面?
    • $.mobile.changePage("#page or URL").
    猜你喜欢
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多