0

i want to run tabs within tabs. this is the first tab section which is running without problems.

<div id="tabs2" class="tabs">

    <ul>
        <li class="skew-25 active">
            <a class="skew25" href="#"> 1 tab</a>
        </li>
        <li class="skew-25"></li>
        <li class="skew-25"></li>
    </ul>
    <div class="tabs-pane">
        <div class="tab-panel active" style="display: block;"> 1 tab output</div>
        <div class="tab-panel" style="display: none;">2 tab output</div>
        <div class="tab-panel" style="display: none;">3 tab output</div>
    </div>

</div>

Now I include another tab within the sections (called 'tab output') of the above:

<div id="tabs4" class="tabs tabs-vertical">

    <ul>
        <li class="skew-25 active">tab within tab section</li>
        <li class="skew-25">
            <a class="skew25" href="#"></a>
        </li>
        <li class="skew-25"></li>
    </ul>
    <div class="tabs-pane">
        <div class="tab-panel active" style="display: block;">content</div>
        <div class="tab-panel" style="display: none;"></div>
        <div class="tab-panel" style="display: none;"></div>
    </div>

</div>

this second code i include in '1 tab output' '2 tab output' and '3 tab output'

Problem is they will ether not send output, not available to choose or not active when apply to a tab in first tab. How to fix this?

Javascripts are:

function(e) {
  if (!$(this).parent().hasClass('active')) {
    e.preventDefault();
    var ind = $(this).parent().index();
    tabsUl.find('li').removeClass('active');
    $(this).parent().addClass('active');
    tabsPane.find('.tab-panel').fadeOut(0).removeClass('active');
    tabsPane.find('.tab-panel').eq(ind).fadeIn(350).addClass('active');
    return false;
  } else {
    return false;
  }
}

and

f = v.handle = function(e) {
  return typeof x === i || e && x.event.triggered === e.type ? t : x.event.dispatch.apply(f.elem, arguments)
}

normal

/* ================ Tabs. ================ */
    $.fn.tabs = function(options) {
        var defaults = {
            direction: ''
        };
        var options = $.extend({}, defaults, options);
        if(options.direction == "vertical"){
            $(this).addClass('tabs-vertical');
        }
        var tabsUl = $(this).find(' > ul'),
            activeTab = tabsUl.find('li.active').index(),
            tabsPane = $(this).find('.tabs-pane');
        tabsPane.find('.tab-panel').fadeOut();
        tabsPane.find('.tab-panel').eq(activeTab).fadeIn();
        tabsUl.find('li').find('a').click(function(e){
            if(!$(this).parent().hasClass('active')){
                e.preventDefault();
                var ind = $(this).parent().index();
                tabsUl.find('li').removeClass('active');
                $(this).parent().addClass('active');
                tabsPane.find('.tab-panel').fadeOut(0).removeClass('active');
                tabsPane.find('.tab-panel').eq(ind).fadeIn(350).addClass('active');
                return false;
            }else{
                return false;
            }
        });
    }
Jay Blanchard
  • 34,243
  • 16
  • 77
  • 119
Fub Tinzi
  • 11
  • 4

1 Answers1

0

Disable the div and all its contents with jQuery like so: How to disable all div content

Also, instead of all that js code you can use jQueryUI Tabs or Bootstrap tabs (also explained here scroll down to the Toggable Tabs section at the bottom of the page).

Community
  • 1
  • 1
pashute
  • 3,965
  • 3
  • 38
  • 65