Проблема с отключением вкладки jQuery UI - PullRequest
2 голосов
/ 09 декабря 2011

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

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

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

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

Спасибо за любую помощь.

Ответы [ 2 ]

6 голосов
/ 20 декабря 2011

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

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

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

Когда я переключился на

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

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

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

3 голосов
/ 09 декабря 2011

Попробуйте

<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

...