Я использую JQuery Mobile 1.4.0 для создания кросс-платформенного приложения и будет создан по телефонной запинке. Например, у меня было две страницы, одна #homepage, другой #detail страницаСкрыть загрузку счетчика после завершения события ajax
<div id="home" data-role="page> Home Page
<a href="#detail">Go Detail</a>
</div>
<div id="detail" data-role="page> Detail Page </div>
JQuery Mobile использовать по умолчанию Ajax для загрузки страниц в DOM, который прекрасно, моя проблема заключается в том, что до деталей страницы шоу, мне нужно получать данные с удаленного сервера через ajax-вызов. Я регистрирую событие ajaxStart и ajaxComplete в документе, чтобы показать и показать/скрыть счетчик.
$(document).ajaxStart(function(){
$.mobile.loading('show');
});
$(document).ajaxComplete(function(){
$.mobile.loading('hide');
});
Проблема заключается в JQuery мобильный скрыть загрузка кок перед тем ajaxComplete вызывается в методе перехода, поэтому на самом деле $ .mobile.loading («скрыть») будет называться дважды. Это не хорошо, потому что данные не были заполнены в DOM, поэтому подробная страница будет пустой, а через некоторое время данные будут вставлены.
Если вы не знаете, что я говорю, вы можете посмотреть в JQuery исходный код мобильного, и вы можете увидеть линии 5070
this._triggerCssTransitionEvents(to, from, "before");
// TODO put this in a binding to events *outside* the widget
this._hideLoading();
Так что мой вопрос заключается в том, чтобы действительно скрыть загрузку кок после ajaxComplete не после перехода страницы?
Большое спасибо за помощь.
В одном из своих последних приложений, которые я спрятал блесну в '$ (документ) .load' событие, а также на' $ (документ) .ajaxStop' события, работал без каких-либо проблем. – wf4
@EthanZ Это расстроило меня какое-то время, разрешили ли вы это? – ModusPwnens