Сообщение Spinner с включенным кешем - PullRequest
3 голосов
/ 27 июля 2011

Я использую jQuery 1.6.2 и jQuery UI.Я хотел бы показать пользовательское сообщение на вкладке AJAX загрузки.У меня есть две вкладки (как в официальной документации ), и мне нравится отображать сообщение «spinner» внутри загружаемого HTML-элемента вместо названия вкладки.

Проблема сСледующий код состоит в том, что я включил кэш, чтобы он не работал должным образом.

$jQ(function() {
  $jQ( 'tabs' ).tabs({
    cache: true,
    select: function(event, ui) {
      var currentId = ui.index + 1;
      $jQ('#' + currentId).html('Loading tab content...');
    }
  });
});

Вот что происходит:

  • При первом нажатии на вторую вкладкуЯ не получаю никакого сообщения о загрузке, но содержимое вкладки загружается.
  • Во второй раз, когда я нажимаю на вторую вкладку, я получаю сообщение о загрузке, и больше нет содержимого вкладки (то есть содержимое вкладки неотображается и сохраняется в сообщении о загрузке).

Как мне заставить его работать?

1 Ответ

0 голосов
/ 27 июля 2011

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

$(function() {
   var cached = {};
   ( "#tabs" ).tabs({
      cache : true,
      select: function(event, ui) {
         if ( typeof ui.index === "undefined" ) {
            $(ui.panel).html('Loading tab content...');
            cached[ui.index] = true;
         }
      }
   });
});
...