ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-11-01 04:34:21  阅读:175  来源: 互联网

标签:url jquery-mobile javascript


基本上,我想在自己的代码中处理哈希侦听以及所有内容,但是我无法让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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有