ЙажаСценарий / Говнокод #18158 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  28. 28
(function($){

  function pickMenuByHash(hash) {

    if(hash == undefined || hash == '' || hash == '#')
      hash = '#home'; // хеш по умолчанию

    // Выбираем ссылки с нужным хешем, чтро бы потом присвоить им класс "active"
    var A_tags = $('a[href="' + hash + '"]');
    
    // Ищем все ссылки в родительском теге UL относительно ссылок и удаляем у них классы "active"
    A_tags.parents('UL').find('a').removeClass('active');

    // Добавляем к ссылкам с нужным нам хешем класс "active"
    $('a[href="' + hash + '"]').addClass('active');
  }

  // Обновить состояние менюшек (сверху и справа) при загрузке страницы
  $(function(){
    pickMenuByHash(document.location.hash);
  });

  // При изменении хеша обновить состояния менюшек (сверху и справа)
  $(window).on('hashchange', function(){
    pickMenuByHash(document.location.hash);
  });

})(jQuery);

Вот тебе при изменении хеша на сайте верхнее и правое меню будет в актуальном для хеша состоянии.

Запостил: littlefuntik littlefuntik, (Updated )

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

  • не лучший подход, я бы это делал непосредственно по ссылкам
    Ответить
    • ну за 3 минуты наваял, ясное дело что первое в голову взбредет, в консоли хрома)
      Ответить
      • что значит как? при клике на ссылку active с других ссылок, которые в группе находятся меняется, а на эту вешается.
        Ответить
    • $ теоретически может быть зохвачен как-нибудь mootools
      Ответить
      • Теоретически и jQuery может быть зохвачен каким-нить kokokotools
        Ответить
        • >$ теоретически может быть зохвачен как-нибудь mootools
          mootools
          Ответить
      • Скорее $ может быть захвачен каким-нибудь Prototype. Тот же Твиттор сначала писали на Prototype, потом переводили на jQuery.

        Страшнее всего, что $ может быть захвачен jQuery. Я серьёзно: http://api.jquery.com/jQuery.noConflict/

        У нас даже был ГК, в котором было подключено одновременно несколько версий jQuery.
        Ответить
        • А нам как-то попалась либа, которая воровала жквери, вызывая noConflict() и заныкивая результат куда-то в свои недра. В результате код, идущий после неё, тупо ломался.

          Причём пока на сайте было 2 жквери разных версий - всё было ок. А сломалось именно тогда, когда лишнюю убрали...

          Пойду подключу десяток жквер про запас, вдруг ещё кто-то украдёт.
          Ответить
          • Это ещё что. Как-то раз верстальщик сломал сайт, случайно подключив дважды один и тот же ЭКМАСкрипт с jquery ui. Оказалось случилось вот что:
            1. Давным давно ЭКМАБлядь подключает jquery.ui.js во имя всех свистелок и перделок.
            2. Вёрстку распидорашивает, ЭКМАБлядь негодует, винит других ЭКМАБлядей, написавших jquery ui.
            3. ЭКМАБлядь применяет скилы обезьяньего патчинга и засирания прототипов (да, да, ЭКМАУебаны, то, за что вы так любите своё говно) и переопределяет не понравившиеся функции прямо в jQuery.fn.
            4. Заказчик доволен, ЭКМАПитух получает квартальную премию и идёт бухать с пацанами с района.
            5. Через n лет тот самый верстальщик подключает тот самый ЭКМАСкрипт
            6. Всё снова летит к хуям на совершенно другой странице, на которую оба участника этой истории ни разу в жизни не заглядывали.
            Нормальные такие ЭКМАБудни. И Теперь эти ушлёпки тащат своё НОДОЭКМАДЕРЬМО на сервера. Надеюсь банк, в котором эти кретины будут хранить свою зряплату, однажды снимет у них со счёта undefined рублей, после чего у них навсегда останется NaN в валюте [Object object]. ЗАТО АСИНХРОННО
            Ответить
            • ЭКМАСКРИПТ — Новый мем ньюфагов. Если ты используешь слово ЭКМАСкрипт, твой пинус длиннее автоматически, ты крут и плевал на всех. Кто-то предлагает соснуть хуйца? Он ЭКМАСкрипт. Кто-то фейлит или троллит? Он ЭКМАСкрипт. Заебали куклофаги? ЭКМАСкрипт. Быдло? Небыдло? То же самое. Кто-то опускает тебя в треде, который ты создал? Знай, он ЭКМАСкрипт. Выебали нигры? Это НАСТОЯЩИЙ ЭКМАСкрипт. Ничего не бойся, со словом ЭКМАСкрипт ты превратишь всех в говно. Дерзай же!
              Ответить
    • ну и плюс инкапсуляция приватных переменных, все дела
      Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8