2011-12-14 18 views
0

jQuery UI tabsオプションにajaxOptionsがあります。jQuery UIのタブ:ajaxOptionは正しく動作しません。

私は次のコードを持っている:

$('#tabs').tabs({ 
    cookie:{expires:1}, 
    cache:true, 
    ajaxOptions:{ 
     beforeSend: function(xhr,settings){ 
      $(".ajax-gif").css("top",$(window).scrollTop()).show(); 
     }, 
     error: function(xhr,status,index,anchor){ 
      $(anchor.hash).html("Couldn't load this tab."); 
     }, 
     complete: function(xhr,textStatus){ 
      $(".ajax-gif").hide(); 
     } 
    } 
}); 

しかし、AJAX-GIFは表示されません。

jQuery ajaxSetup(jQuery UIなし)の同じコードは、通常のAjaxリクエスト(UIタブではありません)に最適です。私はどこで間違ったのですか?

ありがとうございます!

明確化

通常のAjaxリクエストがPOSTフォームを使用し、タブがGETフォームを使用します。

+0

ajaxOptionsオプションはjQuery Ui Tabs 1.8までしか使用できません。http://api.jqueryui.com/1.8/tabsにあります。 – dxvargas

答えて

0

私は解決策を見つけた:あなたはjQueryのUIのタブの

$(document).ajaxSend(function(){ 
    $(".ajax-gif").css("top",$(window).scrollTop()).show(); 
}); 
$(document).ajaxComplete(function(){ 
    $(".ajax-gif").hide(); 
}); 
0

どのバージョンを使用していますか? ajaxOptionsオプションはバージョン1.8までしか利用できません。http://api.jqueryui.com/1.8/tabsに表示されます。

現在のバージョン(1.11)ではbeforeLoadプロパティを使用します。このように:

$('#tabs').tabs({ 
    beforeLoad: function (event, ui) { 

     $(".ajax-gif").css("top",$(window).scrollTop()).show(); 

     ui.jqXHR.complete(function(data) { 
      $(".ajax-gif").hide(); 
     }); 

     ui.jqXHR.error(function(data) { 
      $(anchor.hash).html("Couldn't load this tab."); 
     }); 
    } 
}); 
関連する問題