基本上,我想在自己的代码中处理哈希监听和所有相关内容,但是我无法让jQM停止监听哈希变化事件并干扰URL。我尝试了他们文档中的代码:
$(document).bind('mobileinit', function() {
$.extend($.mobile, {
hashListeningEnabled: false,
pushStateEnabled: false,
ajaxEnabled: false,
linkBindingEnabled: false
});
});
移动初始化事件在第一次页面加载时不会被触发(即使看起来应该触发),所以这对我来说行不通。可以让代码执行的是将其放在$(window).bind('load')中,在Firebug控制台中通过$.mobile.hashListeningEnabled === false验证值已经正确设置,但它们似乎没有起到任何作用!当我输入例如/index.html时,它会加载我的默认页面,但如果我输入/index.html#anything,它只显示了jQM加载旋转图标并且从未加载任何内容(我猜测是因为它正在寻找文件内含有data-role=anything的页面,这是其默认功能)。另外,pushStateEnabled重写显然也无法工作,因为如果我运行window.location.hash = /somethingelse.html,任何支持的浏览器中的URL栏都会显示http:///somethingelse.html,而不是预期的http:///index.html#somethingelse.html。
基本上,我想要jQuery Mobile处理页面布局和DOM操作,绝对不需要其他任何东西。这可能吗?