启用缓存的微调器消息

时间:2011-07-27 06:48:08

标签: jquery ajax jquery-ui caching spinner

我正在使用jQuery 1.6.2和jQuery UI。我想在选项卡AJAX加载上显示自定义消息。我有两个标签(如official documentation中所示),我喜欢在正在加载的HTML div中显示“spinner”消息,而不是在标题标题附近。

以下代码的问题是我已启用缓存,因此无法按预期工作。

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

以下是发生的事情:

  • 我第一次点击第二个标签时,我没有收到任何加载消息但是已加载标签内容。
  • 第二次点击第二个标签时,我收到了加载消息,而不再显示标签内容(即标签内容未显示,并且在加载消息中仍然存在)。

如何让它发挥作用?

1 个答案:

答案 0 :(得分:0)

首先,您的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;
         }
      }
   });
});