1

$.mobile在我的应用程序中使用。我必须创建自己的路由系统。我绑定观察者hashchange并从中提取有趣的数据location.hash。我有一个问题 -如果它有斜线(例如 from to并在黄色框中表示),请jQuery.mobile删除它。location.hash'lalal/#controller/action/param''lalal/controller/action/param'$.mobileError Loading Page

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

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

__construct: function() {   

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

        });  
    }
4

2 回答 2

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

于 2011-11-16T23:03:41.370 回答
0

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

<script>
$(document).bind("mobileinit", function(){
        $.mobile.pushStateEnabled = false;
        $.mobile.ajaxEnabled = false;
        $.mobile.hashListeningEnabled = false;
});
</script>
于 2012-10-06T21:16:35.730 回答