2011-12-14 47 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 2015-01-21 14:15:51

回答

0

我找到了解決辦法:

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

什麼jQuery UI的標籤的版本您使用的? 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."); 
     }); 
    } 
}); 
相關問題