我的理解是
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).bind('mobileinit', function () {
$.mobile.ajaxEnabled = false;
$.mobile.hashListeningEnabled = false;
});
</script>
<script type="text/javascript" src="//code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js"></script>
然后是像
这样的HTML<div data-role="content">
<span id="lat"></span>
<span id="long"></span>
<ul data-role="listview" data-inset="true">
<li>
<a href="/#nowhere">Check out item one</a>
</li>
</ul>
</div>
<div data-role="page" id="nowhere"></div>
不应该导致任何导航发生。不管怎样。我真的很想禁用哈希监听,这样我就可以自己处理事件。
我错过了什么吗?还是这是个bug?
$.mobile.ajaxEnabled= false;
应该可以工作,我会调查的…
否则,只需删除href并手动使用$.mobile.changePage
编辑
我已经做了一些测试,似乎你必须切换到RC3,因为这个新的选项:
新增linkBindingEnabled选项
jQuery Mobile会自动绑定你文档中锚标记上的点击,即使为了让我们处理交互状态和其他功能而禁用了AJAX导航功能。对于那些想要简单地对所有链接说"不要插手"的人来说,将新的linkBindingEnabled全局配置选项设置为false将防止所有锚点处理,包括添加活动按钮状态和备用链接模糊。这只能在尝试将单击管理委托给另一个库或自定义代码时使用。
$(document).bind('mobileinit', function () {
$.mobile.hashListeningEnabled = false;
$.mobile.linkBindingEnabled = false;
});
这对我有用!