在URL中添加您自己的哈希会破坏jQuery Mobile



我想在URL中使用我自己的哈希参数,但当我这样做时,jQuery Mobile网站就不再工作了。只是一个空白的白色屏幕和一个无尽的旋转器。当我使用jQuery Mobile时,散列真的是禁止使用的吗?

如果需要将参数传递到内部/嵌入式页面,jQuery Mobile不支持此功能。但是有两个插件可以让你做到这一点:

  • https://github.com/jblas/jquery-mobile-plugins/tree/master/page-params
  • https://github.com/azicchetti/jquerymobile-router

我建议您阅读关于jQuery Mobile导航模型的官方文档:http://jquerymobile.com/demos/1.1.0/docs/pages/page-navmodel.html

"已知限制"部分提到了这两个插件。

您必须禁用hashstate插件。我不熟悉这样做,但我认为你可以这样做:

$(window).bind('hashchange', function (event) {
    event.stopImmediatePropagation();
});

基本上,jQueryMobile会侦听此事件,并在触发此事件的事件处理程序时转换到页面。

独立于单击而发生的哈希更改,例如当用户单击后退按钮,通过hashchange事件进行处理,使用Ben Alman的hashchange绑定到窗口对象特殊事件插件(包含在jQuery Mobile中)。哈希更改时发生(以及加载第一个页面时),hashchange事件处理程序将把location.hash发送到$.mobile.changePage()函数,依次加载或显示引用的页面。

来源:http://jquerymobile.com/demos/1.1.0/docs/pages/page-navmodel.html

最新更新