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() の結果が受信されている間に、読み込み中のスピナー アイコンを表示することです。これらの 2 つのプロセスが終了したら、スピナーを非表示/破棄したいと考えています。

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 に答える