JQuery嵌套选项卡 - 在单击父选项卡时选择不是第一个子选项

时间:2013-03-28 12:31:44

标签: jquery tabs nested jquery-ui-tabs jquery-tabs

我创建了嵌套标签。样本结束结构如下: 注意:“使用foreach动态添加”_1“。因此所有子div都是使用服务器返回的值动态创建的。”

    <div id="tabs">

      <ul id="tablinks">
      <li><a href="#childtab_1">First Parent</a></li>
      <li><a href="#childtab_2">Second Parent</a></li>
      </ul>


    <div id="childtab_1">
       <div id="ct_1">
        <ul id="childTabLinks_1">
        <li><a href="#childtabs-11">First Nested Tab</a></li>
        <li><a href="#childtabs-12">Second Nested Tab</a></li>
        </ul>
        <div id="childtabs-11"><p>First child content</p>
        </div>
        <div id="childtabs-12"><p>Second child content</p>
        </div>
    </div>   

    <div id="childtab_2">   
    .
    .
    </div> 

    In Java Script:   
    $('#tabs').tabs();
    $('#childtabs_1').tabs(
    //getting data using ajaxOptions
    );
    $('#childtabs_2').tabs(
    //getting data using ajaxOptions
    );

考虑在父1下 - 点击第二个孩子。如果我单击父2然后返回到父1,则仍然选择第二个孩子。我希望每当点击父标签时都应该选择第一个孩子。

我通读了其他帖子 - 并尝试使用

  1. 单击锚元素上的函数。     喜欢

    $('#tabs ul li a').click(function(){
       var parent = $('#tabs').tabs();
       $parent.tabs('select',0);
    });
    

    它不起作用。

  2. 尝试在tabselect上使用bind。它导致事件泡沫,也无法正常工作。

    $('#tabs').bind(
            'tabsselect', 
            function(event, ui) {
                $("#tabLinks li a").on("click", function () { 
                    $('#childTabLinks_0 li a').first().trigger("click"); 
                });     
            }
    ); 
    
  3. 如果有解决方案,请分享是否在选择父级时自动选择第一个孩子。

1 个答案:

答案 0 :(得分:0)

您不需要tabselect功能中的click功能:

$('#tabs').bind(
    'tabsselect',
        function() {
            $(this).children('.child-tabs').tabs('select',0);
        }
    }
); 

<div id="childtab_1">
   <div id="ct_1">
      <ul id="childTabLinks_1" class="child-tabs">
      ...