我在我的应用程序中使用 $.mobile
。我必须创建自己的路由系统。
我在 hashchange
上绑定(bind)观察者,并从 location.hash
中提取有趣的数据。
我有一个问题 - jQuery.mobile
从 location.hash
中删除哈希符号,如果它有一个斜杠(例如来自 'lalal/#controller/action/param '
到 'lalal/controller/action/param'
和 $.mobile
在黄色框中显示 Error Loading Page
。
我首先尝试解除绑定(bind)现有的“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
关于javascript - Jquery Mobile - onhashchange 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158591/