2011-12-09 8 views
2

API говорит, что вы не можете отключить активную вкладку, которая, по моему мнению, является основной проблемой.Устранение неполадок вкладка пользовательского интерфейса jQuery

У меня есть шесть вкладок в одной вкладке пользовательского интерфейса. Одна из вкладок иногда пуста после вызова ajax, чтобы заполнить все вкладки данными на основе щелчка пользователя нового выбора Аккордеона UI. Я использую вкладку «нуль» в качестве выбранной по умолчанию вкладки всякий раз, когда пользователь делает новый выбор.

Я использую следующее, чтобы закодировать в файле php, который загружает пустую закладку, чтобы отключить вкладку, когда она пуста. Он отлично работает, если пользователь не выбрал эту вкладку при нажатии на новый пользовательский интерфейс Accordion. В этом случае пустая вкладка останется включенной.

?> 
    <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> 

Может кто-нибудь предложить страх?

Вот скрипт, содержащий Аякса вызовы:

<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 («опция», «отключено», [2]); Не работает. Некоторое время мне приходилось находить синтаксис в квадратных скобках, который работает. Код, который я показал, работает, если не вызывается $ ('. Stallion'). Live ('click', function() вызывается, когда активна (показана) третья вкладка. В этом случае все в функции срабатывает правильно, кроме нового «Третья» вкладка включена, является ли она пустой или нет. Это было сложно описать. Сообщите мне, если вы не будете следовать тому, что я говорю. Спасибо за вашу помощь. – user1028866

+1

Это должно быть '.tabs (" disable ", 2)' вместо '.tabs (" option "," disabled ", 2)'. –

6

Чтобы помочь другим пользователям следить за этой темой, я хотел бы опубликовать статью, в которой исправлялась эта проблема.

я использовал

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

Когда я перешел на

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

Проблема была исправлена.

Спасибо за помощь Барт и Уильям.

Смежные вопросы