我在我的应用中使用$.mobile
。我必须创建自己的路由系统。
我在hashchange
上绑定了观察者,并从location.hash
中提取了有趣的数据。
我遇到了问题 - 如果jQuery.mobile
有斜杠(例如从location.hash
到'lalal/#controller/action/param'
而'lalal/controller/action/param'
在黄色框中显示$.mobile
,则Error Loading Page
会删除哈希符号data-role='page'
{1}}。
我首先试图取消绑定现有的“hashchange”,但是页面没有自动加载(我需要的)。
如何防止散列更改,但jQuery必须仍然自动加载页面(例如,通过在Router.load
元素中声明的ID)? 。下面是我的路由器类的一个片段:(location.hash
不会更改__construct: function() {
var that = this;
$( window ).bind( "hashchange" , function( e ) {
//e.stopImmediatePropagation()
that.load( this.location.hash );
});
}
)
{{1}}
答案 0 :(得分:6)
我相信你正在与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
答案 1 :(得分:0)
<script>
$(document).bind("mobileinit", function(){
$.mobile.pushStateEnabled = false;
$.mobile.ajaxEnabled = false;
$.mobile.hashListeningEnabled = false;
});
</script>