1. JavaScript / Говнокод #16787

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    $(document).ready(function() {
     $('.tab1').click(function () {
      $('.tab-t1').show();
        $('.tab-t2').hide();
        $('.tab-t3').hide();
        $('.tab1 i').addClass('active');
        $('.tab2 i').removeClass('active');
        $('.tab2 i').removeClass('active');
     });
    
     $('.tab2').click(function () {
      $('.tab-t1').hide();
        $('.tab-t2').show();
        $('.tab-t3').hide();
        $('.tab1 i').removeClass('active');
        $('.tab2 i').addClass('active');
        $('.tab3 i').removeClass('active');
     });
     $('.tab3').click(function () {
      $('.tab-t1').hide();
        $('.tab-t2').hide();
        $('.tab-t3').show();
        $('.tab1 i').removeClass('active');
        $('.tab2 i').removeClass('active');
        $('.tab3 i').addClass('active');
     });
    });

    Из тестового задания

    Запостил: IRIDON, 02 Октября 2014

    Комментарии (9) RSS

    • И даже так работает не верно :( 7 и 8 строки дублируются.

      Для пущего веселья нужно увеличить количество табов в тз до 20 штук.
      Ответить
    • вообще странно, что у каждого таба свой стиль
      Ответить
      • Возможно это сделано для того, чтобы активный таб выбирать как
        $(".active")
        , а класса такого и нет в стилях. Но все равно как то печально все тут.
        Ответить
        • а если у них будет один стиль, то активный будет выбираться не так?
          Ответить
          • Если у них стиль (класс) будет один, например .active, то $(".active") вернет все табы, а точнее все элементы у которых класс .active. И еще раз повторюсь, возможно это не стиль даже, такого класса может даже и не быть в css стилях, но по нему можно селекторами jQ получить активный элемент, как тут сделано. Хотелось бы видеть полную версию кода, там бы понятно все стало, а так только догадки.
            Ответить
            • я такую задачу решил примерно так
              <div id="tabs">
              <div class='tab'></div>
              <div class='tab'></div>
              <div class='tab active'></div>
              <div class='tab'></div>
              </div>
              <script>
              $('#tabs .tab').click(function() {
              $('#tabs .active').removeClass('active');
              $(this).addClass('active');
              });
              </script>
              не?
              Ответить
    • Вообще-то, если не ошибаюсь, это делается через цсс, а в жс, если оно очень надо аппендят класс к тэгу...
      Ответить

    Добавить комментарий