【问题标题】:JQuery Mobile Ajax Navigation in Single-Page Template单页模板中的 JQuery Mobile Ajax 导航
【发布时间】:2011-12-06 05:07:17
【问题描述】:

我们正在使用 RC1 + ASP.NET MVC3 开发 JQuery Mobile 应用程序。 我的问题是:

是否可以使用单页模板进行基于 Ajax 的页面导航? (如此处所述: http://jquerymobile.com/demos/1.0rc1/docs/pages/page-template.html)

我保持 $.mobile.ajaxEnabled = true;并且使用简单,我可以导航到应用程序的不同“单页”。我几乎没有要在新页面中完成的事件绑定(我们通常在 jQuery 的 $(document).ready())事件中完成,我尝试使用 jQueryMobile 的 pageinit、pageshow 事件以及 Ready() 事件,但是这些根本没有被调用。

非常感谢您的帮助。

【问题讨论】:

    标签: jquery asp.net-mvc-3 jquery-mobile


    【解决方案1】:

    是的,当您的每个 <div data-role="page"> 元素位于不同页面时,支持基于 AJAX 的页面导航。在导航时,jQuery Mobile 将只找到页面上的第一个 <div data-role="page"> 元素,将其添加到当前 DOM,然后将其动画化到视图中。

    确保您使用.delegate().live() 绑定您的事件处理程序,因为您要绑定的元素在用户导航到它们之前不存在于DOM 中。这是一个例子:

    $(document).delegate('[data-role="page"]', 'pageshow', function () {
        alert(this.id + ' --> pageshow');
    });
    

    如果您使用更新 URL 以不包含哈希值的 pushState 功能(例如 www.mywebsite.com/index.html#/dir1/page2.html 更改为 www.mywebsite.com/dir1/page2.html ) 我建议将所有自定义 JavaScript 编写在外部 .js 文件中,并将其包含在每个页面中。这样,如果用户刷新浏览器或深层链接到您的网站,他们将获得您希望他们拥有的体验的所有代码。

    文档:

    【讨论】:

    【解决方案2】:

    您可以使用普通链接链接第二个单页,如此处所述

    http://jquerymobile.com/demos/1.0rc1/docs/pages/page-links.html

    您也可以使用 changePage 实用程序强制加载页面

    $.mobile.changePage( 'secondPage.html', 'slide' );
    

    这里记录了

    http://jquerymobile.com/test/docs/api/methods.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-13
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多