Вкладка Jquery — добавление класса при активации

#jquery #jquery-ui-tabs

#jquery #jquery-ui-tabs

Вопрос:

Я пытаюсь отредактировать это:

http://jsfiddle.net/rohankumar1524/HznC9/3/

Как вы можете видеть, код добавляет класс «current_tab» в «ul.tab_nav li a».

Мне нужно добавить этот класс в «ul.tab_nav li».

Я пробовал это:

 $(document).ready(function(){
$('.tabs').each(function(){
    var tab = $(this);
    tab.find('.tab_content').hide(); // Hide all divs

    tab.find('ul.tab_nav li').click(function(){ //When any link is clicked
        if($(this).hasClass('current_tab')) return false;
        tab.find('ul.tab_nav li').removeClass('current_tab');
        $(this).addClass('current_tab'); //Set clicked link class to active

        var currentTab = tab.find($(this).attr('href')); // Set variable currentTab to value of href attribute of clicked link

        tab.find('.tab_content').hide(); // Hide all divs
        $(currentTab).slideDown(); // Show div with id equal to variable currentTab
        return false;
    });
});
});
 

Но таким образом «tab_content» не будет отображаться.

Любая помощь?

Ответ №1:

В вашем обработчике события click это относится к <li> элементу, но ваш атрибут href находится в дочернем <a> элементе:

 <li><a href=".tab2"class="iconTab iconTabWifi">amp;nbsp;</a></li>
 

Поэтому вместо того, чтобы делать это:

 var currentTab = tab.find($(this).attr('href'));
 

сделайте это:

 var currentTab = tab.find($(this).find("a.iconTab").attr('href'));