jquery mobile hashListeningEnabled продолжает прослушивать изменения хэша, даже если установлено значение false - PullRequest
4 голосов
/ 16 ноября 2011

Насколько я понимаю,

<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 Ответ

10 голосов
/ 16 ноября 2011

$.mobile.ajaxEnabled= false; должно работать, я посмотрю на это ..

В противном случае просто удалите href и сделайте все вручную с помощью $ .mobile.changePage

Редактировать

Я провел некоторое тестирование, и, похоже, вам нужно переключиться на RC3 из-за этой новой опции:

Новая опция linkBindingEnabled

jQuery Mobile автоматически связывает нажатиязакрепите теги в вашем документе, даже если функция навигации AJAX отключена, чтобы мы могли обрабатывать состояния взаимодействия и другие функции.Для людей, которые ищут простой способ сказать «руки прочь» на всех ссылках, установка нового параметра глобальной конфигурации linkBindingEnabled на false предотвратит всю обработку щелчков привязки, включая добавление состояния активной кнопки и вспыхивание альтернативной ссылки.Это следует использовать только при попытке делегировать управление кликами другой библиотеке или пользовательскому коду.

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

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

  });

Это работает для меня!

...