jquery mobile hashListeningEnabled即使设置为false也会监听哈希值的变化



我的理解是

<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;
  });

这对我有用!

最新更新