jquery mobile hashListeningEnabled即使设置为false也会一直监听哈希更改

时间:2011-11-16 05:11:28

标签: jquery-mobile

这是我的理解

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

不应导致任何导航。不过确实如此。我真的想禁用哈希监听,以便我自己处理这些事件。

我错过了什么吗?或者这是一个错误吗?

1 个答案:

答案 0 :(得分:10)

$.mobile.ajaxEnabled= false;应该有用,我会调查一下..

否则只需删除href并使用$ .mobile.changePage

手动完成所有操作

修改

我做了一些测试,看来你必须切换到RC3,因为这个新选项:

新的linkBindingEnabled选项

jQuery Mobile将自动绑定文档中锚标签的点击次数,即使禁用了AJAX导航功能,我们也可以处理交互状态和其他功能。对于寻找在所有链接上说“手动”的简单方法的人来说,将新的linkBindingEnabled全局配置选项设置为false将阻止所有锚点击处理,包括添加活动按钮状态和备用链接模糊。这只应在尝试将点击管理委托给另一个库或自定义代码时使用。

  $(document).bind('mobileinit', function () {

      $.mobile.hashListeningEnabled = false;
      $.mobile.linkBindingEnabled = false;

  });

这对我有用!