2011-12-09 108 views
2

該API說你不能禁用活動選項卡,我認爲這是我的問題的關鍵。麻煩禁用jQuery UI選項卡

我在一個UI選項卡中有六個選項卡。在ajax調用之後,其中一個選項卡有時爲空,以便根據用戶點擊新的UI手風琴選項來填充所有選項卡。每當用戶進行新選擇時,我都會使用「零」選項卡作爲默認選定選項卡。

我使用以下代碼在PHP文件中加載有時爲空的選項卡,以在其爲空時禁用選項卡。它可以正常工作,除非用戶在單擊新的UI手風琴選項時選擇了此選項卡。在這種情況下,空標籤將保持啓用狀態。

?> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#tabs").tabs("option", "disabled", false); 
     }); 
    </script> 
<?php 
}else{ 
?> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#tabs").tabs("option", "disabled", [2]); 
     }); 
    </script> 

有人可以建議一個戰術?

下面是一個包含Ajax調用腳本:

<script type="text/javascript">     
    $('.stallion').live('click', function(){ 
var id = parseInt(this.id); // Get stallion_ID from clicked "a" tag id. 
activestallion(id); // Function to indicate clicked Stallion in Stallion Accordion 
     // Start loading Overview Tab 
     var request = $.ajax({ 
      url: "stalliondetails.php", 
      type: "GET", 
      data: {stallion_ID : id} 
     }); 
     request.done(function(html){ 
      $("#tabs-1").html(html); 
      $("#tabs").tabs("option", "selected", 0); 
      $(".activehorse").fadeOut('1000', function(){ 
      document.getElementById("activehorsename").innerHTML 
       =document.getElementById(id).innerHTML; 
      $(".activehorse").fadeIn('1000'); 
      }); 
      $("#tabs").tabs("select" , 0); 
     }); 
     // Overview Tab load finished. 
     //Pedigree Tab load starting. 
     var request = $.ajax({ 
     url: "pedigreedetails.php", 
     type: "GET", 
     data: {stallion_ID : id}, 
     success: function(html){ 
     $("#tabs-2").html(html); 
     } 
     });  
     //Pedigree Tab load finished. 
     //Progeny Tab load starting. 
     var request = $.ajax({ 
     url: "progenydetails.php", 
     type: "GET", 
     data: {stallion_ID : id}, 
     success: function(html){ 
     $("#tabs-3").html(html); 
     } 
     });  
     //Progeny Tab load finished. 
     //News Tab load starting. 
     var request = $.ajax({ 
     url: "newsdetails.php", 
     type: "GET", 
     data: {stallion_ID : id}, 
     success: function(html){ 
     $("#tabs-4").html(html); 
     } 
     });  
     //News Tab load finished. 
     //Race Record Tab load starting. 
     var request = $.ajax({ 
     url: "racerecorddetails.php", 
     type: "GET", 
     data: {stallion_ID : id}, 
     success: function(html){ 
     $("#tabs-5").html(html); 
     } 
     });  
     //Race Record Tab load finished. 
     //Analysis Tab load starting. 
     var request = $.ajax({ 
     url: "analysisdetails.php", 
     type: "GET", 
     data: {stallion_ID : id}, 
     success: function(html){ 
     $("#tabs-6").html(html); 
     } 
     });  
     //Analysis Tab load finished. 
     //Update the Seasons Request form to this Stallion. 
     updateseasons(id); 
     $("#tabs").tabs("option", "selected", 0); 
     $("button").button() ;  
    }); 
</script> 

感謝您的幫助。

回答

3

嘗試

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#tabs").tabs("option", "disabled", 2); 
    }); 
</script> 

或多禁用

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#tabs").tabs('option','disabled', [1, 2, 3, 4]); 
    }); 
</script> 

,而不是

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#tabs").tabs("option", "disabled", [2]); 
    }); 
</script> 

,使標籤和移動使用

$("#tabs").tabs("enable" , 1) 
    $("#tabs").tabs("select" , 1) 

*從0開始計數

+0

使用:$(「#tabs」).tabs(「option」,「disabled」,2); – user1028866

+0

使用: $(「#tabs」).tabs(「option」,「disabled」,2); (「#tabs」).tabs(「option」,「disabled」,[2]);代替: 不起作用。花了我一段時間來找到有效的方括號。我所展示的代碼除非在第三個選項卡處於活動狀態(顯示)時調用$('。stallion')。live('click',function(),否則該函數中的所有內容都會正確觸發, 「第三個」選項卡是空的或不是空的,這很難描述,如果你不遵循我的意思,請告訴我,謝謝你的幫助。 – user1028866

+1

它應該是'.tabs(「disable 「,2)'而不是'.tabs(」option「,」disabled「,2)' –

6

爲了幫助他人關注此主題,我想發佈最終解決此問題的方案。

我用

$("#tabs").tabs("option", "disabled", [2]); 

當我切換到

$("#tabs").tabs("disable", 2); 

的問題已得到解決。

感謝您的幫助巴特和威廉。