Как запретить jQuery Mobile выполнять вызовы ajax при динамическом внедрении HTML-страниц - PullRequest
3 голосов
/ 26 февраля 2011

Вместо использования вызовов ajax я создаю и внедряю страницы в $ .mobile.pageContainer. Динамическое создание страниц jQuery Mobile с использованием шаблонов jQuery

Когда я хочу получить доступ к странице с хеш-тегом (который генерируется в моей функции onReady), jQuery mobile пытается выполнить вызов ajax. Это не удается. Когда вызывается моя функция onReady, я должен проверить URL и вызвать $ .mobile.changePage (), чтобы он появился.

var loc = window.location.href;
var loc = loc.split('#').pop();
if (loc !== "http://lift.pageforest.com/") {
    $.mobile.changePage(loc, 'pop', false, true);
}

Все нормально, но jQuery Mobile все еще совершал неудачный вызов ajax, что приводило к ошибке, выдаваемой на консоль, а также к большому div-сообщению об ошибках, показанном пользователю.

Я попытался переопределить функцию $ .mobileinit ajaxEnabled () на false, потому что я никогда не буду использовать ajax. http://jquerymobile.com/demos/1.0a3/#docs/api/globalconfig.html К сожалению, это создало кучу других проблем.

Почему jQuery mobile автоматически предполагает, что я хочу использовать ajax, и я не буду создавать контент в своей собственной функции onReady? Как мне обойти это?

перенесено отсюда: http://forum.jquery.com/topic/how-to-disable-automatic-ajax-calls-when-dynamically-creating-pages

1 Ответ

0 голосов
/ 18 января 2012

Можете ли вы использовать event.preventDefault ();?

http://api.jquery.com/event.preventDefault/

Или, если вы установите rel = "external" и селектор класса JQ в вашей ссылке, это предотвратит использование по умолчаниювнутренняя ссылка.

<a href="#mylink" class="hash-link" rel="external">Link</a>

<script>  
$('.hash-link').click(function() {

   var loc = window.location.href;
   var loc = loc.split('#').pop();
   if (loc !== "http://lift.pageforest.com/") {
        $.mobile.changePage(loc, 'pop', false, true);
    }

});
</script>
...