其他分享
首页 > 其他分享> > 如何停止window.location做任何事情的jQuery Mobile?

如何停止window.location做任何事情的jQuery Mobile?

作者:互联网

基本上,我想在自己的代码中处理哈希侦听以及所有内容,但是我无法让jQM停止侦听哈希更改事件,并且通常会嘲笑URL.我已经尝试了他们文档中的代码:

$(document).bind('mobileinit', function() {
    $.extend($.mobile, {
        hashListeningEnabled: false,
        pushStateEnabled: false,
        ajaxEnabled: false,
        linkBindingEnabled: false
    });
});

但是,即使在首页加载时也不会触发mobileinit事件(即使看起来应该如此),所以这对我不起作用.使代码执行的是将其放入$(window).bind(‘load’),我可以通过$.mobile.hashListeningEnabled === false在Firebug控制台中进行验证,以确保在此处正确设置了值-但是,他们似乎什么也没做!当我在地址栏中输入< mysite> /index.html时,它会加载我的默认页面,但是如果我输入< mysite> /index.html#anything,它将仅显示jQM加载微调器,并且从不加载任何内容(我想是因为它正在寻找文件中包含data-role = anything的页面,这是其默认功能).此外,pushStateEnabled覆盖显然也无法正常工作,因为如果我运行window.location.hash = /somethingelse.html,则任何受支持的浏览器中的URL栏都会显示http://< mysite> /somethingelse.html,而不是预期的http://< mysite> /index.html#somethingelse.html.

基本上,我想要的是让jQuery Mobile处理页面布局和DOM操作,而别无其他.这可能吗?

解决方法:

我不知道这些属性是否是要设置的正确属性(没有检查文档),但是我以前遇到过此问题.为了解决这个问题,您需要在包含脚本之前绑定事件,这样:

<script type="text/javascript">
    $(document).bind('mobileinit', function() {
        $.extend($.mobile, {
            hashListeningEnabled: false,
            pushStateEnabled: false,
            ajaxEnabled: false,
            linkBindingEnabled: false
        });
    });
</script>
<script src="//code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>

您必须执行此操作的原因是,在加载jquery移动文件时会触发mobileinit事件.

标签:url,jquery-mobile,javascript
来源: https://codeday.me/bug/20191101/1981061.html