4

我有 4 个选项卡,每个选项卡包含不同的数据。当我单击复选框时,会显示相应的选项卡。但是当我取消选中时,选项卡是不可见的,但内容是不可见的。如何解决这个问题呢?我的页面是

<style>
    .ui-state-disabled {
    display: none;
}
</style>
    <script>
    $(function() {
  $("#tabs").tabs();
  $("#tabs").tabs("option", {
    "selected": 2,
    "disabled": [1,2,3]
  });

$( "input[type=checkbox]" ).click(function(){
    if ($(this).is(':checked')) {
     $('#tabs').tabs("enable", $(this).val());
     $('#tabs').tabs("select", $(this).val() );
    }
    else{
         $('#tabs').tabs("disable", $(this).val());
    }
});
});
</script>

.

<body>
 <div id="tabs">
  <ul>
    <li><a href="#tabs-1">Nithin</a> </li>
    <li><a href="#tabs-2">Vipin</a></li>
    <li><a href="#tabs-3">Sachin</a></li>
    <li><a href="#tabs-4">Ganguly</a></li>
  </ul>
  <div id="tabs-1">
    <p>Nithin</p>
  </div>
  <div id="tabs-2">
    <p>Vipin</p>
  </div>
   <div id="tabs-3">
    <p>Sachin</p>
  </div>
   <div id="tabs-4">
    <p>Ganguly</p>
  </div>
</div>
<input type="checkbox" name="tabs-1" value="1">tabs-1 
<input type="checkbox" name="tabs-2" value="2">tabs-2 
<input type="checkbox" name="tabs-3" value="3">tabs-3 
<input type="checkbox" name="tabs-4" value="4">tabs-4 
<br>
</body>
</html>

您可以在http://jsfiddle.net/2aQ2g/12/上查看工作代码

4

7 回答 7

3

只需检查else部分... 工作演示

$(function() {
  $("#tabs").tabs();
  $("#tabs").tabs("option", {
    "selected": 2,
    "disabled": [1,2,3]
  });

$( "input[type=checkbox]" ).click(function(){
    if ($(this).is(':checked')) {
     $('#tabs').tabs("enable", $(this).val());
     $('#tabs').tabs("select", $(this).val() );
    }
    else{
        // $('#tabs').tabs("disable", $(this).val());
        $('#tabs').tabs("disable", $(this).val());
         $('#tabs').tabs("select", $(this).prev().val());
         $('#tabs').tabs("enable", $(this).prev().val());
    }
});
});
于 2013-03-05T06:08:25.470 回答
2

试试这个

$( "input[type=checkbox]" ).click(function(){
    if ($(this).is(':checked')) {
     $('#tabs').tabs("enable", $(this).val());
     $('#tabs').tabs("select", $(this).val() );
    }
    else{
         $('#tabs').tabs("disable", $(this).val());
      $("#tabs-"+$(this).val()).children().hide());
    }
});

您只需禁用选项卡。也隐藏内容

于 2013-03-05T05:44:22.183 回答
2

这可能会有所帮助:

$("input[type=checkbox]").click(function () {
    if ($(this).is(':checked')) {
        $('#tabs').tabs("enable", $(this).val());
        $('#tabs').tabs("select", $(this).val());
        $('[id="' + this.name + '"]').find('p').show();
    } else {
        $('#tabs').tabs("disable", $(this).val());
        $('[id="' + this.name + '"]').find('p').hide();
    }
});

笔记:

无需添加content类。

只需在此处查看小提琴

于 2013-03-05T05:47:50.227 回答
2

添加var hhh = $("input:checked").val(); $('#tabs').tabs("enable", hhh); $('#tabs').tabs("select", hhh ); $("#tabs-"+hhh+" p").show();到您的其他。

现场演示

                $(function() {
  $("#tabs").tabs();
  $("#tabs").tabs("option", {
    "selected": 2,
    "disabled": [1,2,3]
  });

$( "input[type=checkbox]" ).click(function(){
    if ($(this).is(':checked')) {
     $('#tabs').tabs("enable", $(this).val());
     $('#tabs').tabs("select", $(this).val() );
     $("#tabs-"+$(this).val()+" p").show();
    }
    else{
         $('#tabs').tabs("disable", $(this).val());
        $("#tabs-"+$(this).val()+" p").hide();
        var hhh = $("input:checked").val();
        $('#tabs').tabs("enable", hhh);
     $('#tabs').tabs("select", hhh );
     $("#tabs-"+hhh+" p").show();
    }
});
});
于 2013-03-05T05:52:18.313 回答
2
    $(function() {
      $("#tabs").tabs();
      $("#tabs").tabs("option", {
        "selected": 2,
        "disabled": [1,2,3]
      });

    $( "input[type=checkbox]" ).click(function(){
        if ($(this).is(':checked')) {
         $('#tabs').tabs("enable", $(this).val());
         $('#tabs').tabs("select", $(this).val() );
        }
        else{
             $('#tabs').tabs("disable", $(this).val());
             $('#'+$(this).attr('name')).hide();
        }
    });
});
于 2013-03-05T05:52:41.383 回答
2

您可以在JSFiddle上查看

$(function() {
  $("#tabs").tabs();
  $("#tabs").tabs("option", {
    "selected": 0,
    "disabled": [1,2,3]
  });

$( "input[type=checkbox]" ).click(function(){
    if ($(this).is(':checked')) {
     $('#tabs').tabs("enable", $(this).val());
     $('#tabs').tabs("select", $(this).val() );
    }
    else{
        $('#tabs').tabs("disable", $(this).val());
        var tab = $(this);
        $('#tabs').tabs("select", $(":checked").first().val());
        //$('#tabs').tabs("select", $(":checked").last().val());
        //It is based on you what to use. (first or last selected value)
    }
});
});

我希望这有帮助。问候

于 2013-03-05T05:54:13.770 回答
1

在元素的其他部分添加类ui-state-disabled ,然后它将display: none;

于 2013-03-05T05:50:15.083 回答