2009-12-21 2 views
0

У меня возникли проблемы, скрывающих содержимое некоторых див в язычке псевдо создан - мой код на http://rudderlive.bito.org.nz/employment_dev2.aspJQuery - проблемы селектора в тайнике содержания вкладки

Tab 1 до Tab 2 работает отлично, но переход от Вкладка 2 - вкладка 3 не скрывает div из вкладки 2, и переход из Tab 3 обратно в Tab 1 не скрывает вкладки 2 или 3 div.

Мой код выглядит следующим образом - но это имеет смысл, если смотреть вместе с HTML (на странице выше) ...

$('ul.tabNav a').click(function() { 
    var curChildIndex = $(this).parent().prevAll().length + 1; 
    $(this).parent().parent().children('.current').removeClass('current'); 
    $(this).parent().addClass('current'); 
    $('div.tabContainer').children('.current').fadeOut('fast',function() { 
     $(this).removeClass('current'); 
     $('div.tabContainer').children('div:nth-child('+curChildIndex+')').fadeIn('normal',function() { 
     $(this).addClass('current'); 
     }); 
    }); 
    return false; 
}); 

ответ

0

Этот код работает (проверено с поджигатель). $(this), похоже, не работает в ваших обратных вызовах.

$("ul.tabNav a").click(function() 
{ 
    var curChildIndex = $(this).parent().prevAll().length; 

    $(this).parent().siblings().removeClass("current"); 
    $(this).parent().addClass("current"); 

    var tabContent = $(this).parents("ul.tabNav:first").next(".tabContainer").children(".current"); 
    tabContent.fadeOut("fast", function() 
    { 
     //console.log($(this)); --> returns the instance of the window 

     tabContent.removeClass("current"); 
     var newTabContent = tabContent.parent().children("div:eq("+ curChildIndex +")"); 

     newTabContent.fadeIn("fast", function() 
     { 
      newTabContent.addClass("current"); 
     }); 
    }); 

    return false; 
}); 
+0

Спасибо, кучи - намного лучше, чем мой код (кроме того, что он тоже работает!) Брюс – TomBaine

1

есть что-то не так с проставлением current класс нового видимого содержимого. , чтобы вы могли попробовать этот скрипт.

$('div.tabContainer') 
    .children('.current') 
    .removeClass('current') // put here 
    .fadeOut('fast',function() { 

    // $(this).removeClass('current'); remove from here 

    $('div.tabContainer') 
     .children('div:nth-child('+curChildIndex+')') 
     .addClass('current') // put here 
     .fadeIn('normal',function() { 
     // $(this).addClass('current'); remove from here 
     }); 
    }); 

надеюсь, что это поможет

+0

Спасибо - это замечательно – TomBaine