Скрипт Google Apps и мобильный загрузчик jquery, дающие два спиннера - PullRequest
0 голосов
/ 27 июня 2019

Позвольте мне предвосхитить это, сказав, что я хочу спиннер ...

Меня не волнует, загружается ли он при первом запуске страницы или позже.Проблема, с которой я столкнулся, тоже, похоже, не волнует, поскольку я пробовал ее в обоих направлениях.

Прямо сейчас, я не объявляю ее в верхней части страницы.Поскольку у меня много вещей, связанных с визуализацией, я запускаю их и сразу передаю некоторую информацию блесну (которая также запускает ее):

google.load('visualization', '1', {packages:['controls'], callback: initializeTables});

function initializeTables() {
  provideInfo("loading proficiencies (Step 1/12)");
  //etc... }

function provideInfo(text) {
  $.mobile.loading( "show", {
    text: text,
    textVisible: true
  });
}

Итак, все начинается ... хорошо ...иш ...

Проблема в том, что на самом деле два запускаются, когда он начинается - один впереди, другой сзади.Поскольку передняя часть немного смещена относительно задней, я могу видеть обе.

Если я позже позвоню:

$.mobile.loading( "hide" );

Она скрывает только переднюю, а не заднюю.

Я обнаружил, что могу скрыть оба слова, сказав:

$(".ui-loader").hide();

Что здорово.Но я бы не хотел видеть двоих на первом месте.Я пытался разгадать страницу документации jquery mobile , но безрезультатно (здесь также упоминается «глобальный метод документации», но я не смог найти эту ссылку):

//This does not work:
$( ".ui-loader" ).loader( "option", "text", "Loading Page..." );

//Nor does this:
$( "#notify_div" ).loader( "show" );
$( "#notify_div" ).loader( "option", "text", "Loading Page..." );

Кто-нибудь знает, как собрать все это в один счетчик или почему он загружает два?

1 Ответ

1 голос
/ 28 июня 2019

К сожалению, текущая документация JQM относится к версии 1.5, которая еще не выпущена. Вам нужно посмотреть прямо на исходный код версии 1.4.5. По умолчанию есть JQM, который показывает счетчик при загрузке страницы. Вы можете переопределить это поведение при инициализации JQM.

  <script type="application/javascript" src="js/jquery-2.2.4.js"></script>
  <script>
    $(document).on("mobileinit", function () {
      $.mobile.changePage.defaults.showLoadMsg = false;
    });
  </script>
  <script type="application/javascript" src="js/jquery.mobile-1.4.5.js"></script>

Если вы посмотрите на строку 5847 несжатого исходного кода JQM, вы найдете все настраиваемые параметры для этого. Более того, просто ради полноты есть еще один параметр, в котором вы можете указать JQM не показывать счетчик для уже кэшированных страниц. Просто посмотрите на строку 5122 несжатого исходного кода JQM:

    // This delay allows loads that pull from browser cache to
    // occur without showing the loading message.
    loadMsgDelay: 50

Надеюсь, эта помощь.

...