gpt4 book ai didi

javascript - 如何阻止 jQuery Mobile 对 window.location 做任何事情?

转载 作者:行者123 更新时间:2023-11-29 10:21:17 25 4
gpt4 key购买 nike

基本上,我想在我自己的代码中处理散列监听和所有内容,但我无法让 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 override 显然也不起作用,因为如果我运行 window.location.hash = /somethingelse.html任何支持的浏览器中的 URL 栏显示 http://<mysite>/somethingelse.html ,而不是预期的 http://<mysite>/index.html#somethingelse.html .

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

最佳答案

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

<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>

您必须这样做的原因是 mobileinit 事件会在加载 jquery 移动文件时触发。

关于javascript - 如何阻止 jQuery Mobile 对 window.location 做任何事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com