0

我在将 jQuery 延迟对象与 jQuery UI 选项卡集成时遇到了一些问题。

基本上,我想实现这样的目标:

(function($) {
   var tabs;

   function func1 () {
      return $.get(url, function() {
         // ajax call 1
      });
   };

   function loadTabs() {
     return tabs = $('.tabs').tabs({
        ajaxOptions: {
            beforeSend: function(jQXHR, settings) {
                // load spinner image
            },
            complete: function(jqXHR, settings) {
                // destroy spinner image
            }
        }
    })
   };

   $.when(func1(), loadTabs()).then(function() {
      tabs.bind('tabsload', function(event, currentTab) {
         // do something
      }
   });
})(jQuery);

基本上,我认为我不会从选项卡实例化中获得延迟对象。我已经读到升级到 jQuery 1.9 UI 候选版本可能会公开一个 API 来获取延迟对象,但我似乎无法找到该功能的文档。

编辑:我对这个实现的总体目标是在接收到 func1() 和 loadTabs() 的结果时显示我的加载微调器图标。一旦这两个过程完成,我想隐藏/销毁微调器。

4

1 回答 1

1

为什么不这样做:

function myTabs() {
    loadSpinner();
    $.ajax(url, { data: data})
       .done(loadTabsFunction)
       .always(killSpinner)
    ;
}

function loadTabsFunction(response) { }

function loadSpinner() { }

function killSpinner() { }

myTabs();
于 2012-09-27T22:48:21.047 回答