基本上,我想在我自己的代码中处理哈希侦听和所有内容,但是我无法让 jQM 停止侦听哈希更改事件,并且通常对 URL 进行处理。我已经尝试过他们文档中的代码:
$(document).bind('mobileinit', function() {
$.extend($.mobile, {
hashListeningEnabled: false,
pushStateEnabled: false,
ajaxEnabled: false,
linkBindingEnabled: false
});
});
mobileinit 事件不会在第一个页面加载时被触发(即使它看起来应该如此),所以这对我不起作用。让代码执行的是将其放入 $(window).bind('load') 中,我可以在 Firebug 控制台中通过$.mobile.hashListeningEnabled === false
这些值是否在其中正确设置来验证 - 但是,它们似乎没有做任何事情!例如,当我<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 操作,除此之外别无其他。这可能吗?