【问题标题】:Open links in div container in JQuery Mobile在 JQuery Mobile 的 div 容器中打开链接
【发布时间】:2011-09-28 14:39:00
【问题描述】:

我有一个多列布局,其中“#content-primary”是我想要加载实际内容的 div,“#content-secondary”包含生成的链接列表视图(实际上是一个导航菜单)。

我正在使用此代码更改页面,几乎遵循 JQM 文档,但是浏览器遵循指向全新页面的链接,而不是将它们中的内容加载到“#content-primary”div 中。显然我缺少一些东西。

$(function(){
            $('#menu a').click(function() {
                $.mobile.changePage($(this).attr('href'), {
                    pageContainer: $("#content-primary")
                } );
            });
        });

在后端使用 Django,但可能不相关。

【问题讨论】:

  • $.mobile.changePage() 可以在外部调用并接受以下参数(to、transition、back、changeHash)。是什么让您认为可以将页面容器传入?
  • 根据文档 (jquerymobile.com/test/docs/api/methods.html),它有两个参数:changePage(to, options) 其中 options 是属性的集合。 pageContainer 是这些属性之一。 [quote]pageContainer(jQuery 集合,默认:$.mobile.pageContainer)指定应该包含页面的元素。[/quote]

标签: javascript jquery ajax django jquery-mobile


【解决方案1】:

更新到新的 beta 1 版本

【讨论】:

    【解决方案2】:

    我终于找到了答案here。 JQuery Mobile 的 changePage()loadPage() 方法做了太多的后处理并触发了很多事件,这确实使实现您自己的动态加载比应有的更复杂.

    老式的 #("div#primary-content").load(); 有效,但我仍在努力将 JQM 样式应用于它。

    【讨论】:

      【解决方案3】:

      有趣的是,thisthis 矛盾:

      $.mobile.changePage() 可以调用 外部并接受以下内容 论据(到,过渡,返回, 改变哈希)。

      并且在测试时它有效:$.mobile.changePage("index.html", "slideup"); 但这不是: $.mobile.changePage("index.html", { transition: "slideup" });

      也许文档不太正确?

      【讨论】:

      • 所以看来我想使用的方法要么被弃用,要么根本没有实现。很遗憾,因为它提供了许多使用 JQM 的人想要的功能。有一些插件提供拆分列导航,但这似乎是一个很大的开销,因为我只希望它用于一个视图:stackoverflow.com/questions/6515525/…
      • changePage(to, options) 是根据:jquerymobile.com/blog/2011/06/20/jquery-mobile-beta-1-released 的新签名,它现在更改页面,但整个页面在完成加载后立即转出屏幕,因此显示空白屏幕.我相信 changePage 仍在调用一些代码来刷新不应调用的新页面。
      猜你喜欢
      • 2012-08-19
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多