Jquery mobile – onhashchange问​​题

我在我的应用程序中使用$.mobile 。 我必须创建自己的路由系统。 我在hashchange上绑定观察者,并从location.hash提取有趣的数据。 我有一个问题 – 如果jQuery.mobile有一个斜杠(例如从'lalal/#controller/action/param''lalal/controller/action/param'$.mobile说明),它会从location.hash删除哈希符号黄色框Error Loading Page

我试图首先取消绑定现有的“hashchange”,但之后页面不会自动加载(我需要的)。

如何防止散列的更改,但jQuery必须仍然自动加载页面(例如,通过在具有data-role='page'元素中声明的ID)? 。 下面是我的路由器类的一个片段:( Router.load不会改变location.hash

 __construct: function() { var that = this; $( window ).bind( "hashchange" , function( e ) { //e.stopImmediatePropagation() that.load( this.location.hash ); }); } 

我相信你正在与Beta 3中添加的jQuery Mobile中的“pushState”插件作斗争(我相信)。 您可以使用以下代码禁用此插件(在包含jQuery Mobile JavaScript文件之前使用):

 $(document).on('mobileinit', function () { $.mobile.pushStateEnabled = false; }); 

在这里查看文档(请注意“pushState插件”部分): http : //jquerymobile.com/demos/1.0rc3/docs/pages/page-navmodel.html

在包含jquery之后的html中,包括jquery.mobile-1.xyjs 之前添加: