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

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
$(document).ready(function()
	{
	var flag=true;
	$("#reg").click(function()
		{
			if(flag==true)
			{
				$("#reg2").slideUp();
				flag=!flag;
			}
			else
			{
				$("#reg2").slideDown();
				flag=!flag;
			}
	});
});

Новейшие технологии позволяют показывать элемент, если он скрыть и скрывать, если показан. Найдено здесь http://javascript.ru/forum/62011-post4.html

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

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

    • обращаем внимание на коммент инкануса, и говнокод превращается.....
      Ответить
    • $("#reg2")[flag ? 'slideUp' : 'slideDown'](), flag = !flag;

      А лучше .slideToggle()
      Ответить
    • Хотя бы так:
      if(flag)
      {
       $("#reg2").slideUp();
       }
      else
      {
       $("#reg2").slideDown();
       }
       flag=!flag;

      А вообще toggle.

      Мне вот интересно -- Вы правда не увидели говна в этом коде? Тоесть копипаста Вас не смутила?
      Ответить
      • кстати, копипаста при всех недостатках, о коих кричат, имеет один маленький забытый плюс: два куска независимы друг от друга, и один кусок можно независимо от остальных изменять. что очень хорошо для всяческих todo- и "not supported yet" заглушек.
        и еще один плюс поменьше (или побольше?): копипаста позволяет избежать typo-ошибок
        Ответить
          • Извольте.

            я не помню наизусть жкуери, но примерно так, даже на примере сабжа:
            вот я допустим передумал, и хочу, что бы у меня фигнюшка не вылазила\залезала, а вылазила\растворялась.
            тогда сабж достаточно заменить в одном месте (для простоты, не оригинал сабжа, а ваша редакция):

            if(flag)
            {
             $("#reg2").slideUp();
             }
            else
            {
             $("#reg2").fadeOut();
             }
             flag=!flag;


            тогда как тру-(безусловно тру)вариант Эвала .slideToggle() пришлось бы переписывать полностью
            Ответить
              • что ж, я выразил свое замечание и доказал его.

                а про рефакторинг....
                именно поэтому его(рефакторинга) природа не механическая, а интеллектуальная. Иначе бы, при гипотетическом туле автоматического кодоанализа и рефакторинга мы бы получали еще более жуткий говнокод, который все похожие куски кода воспринял бы как копипасты и оформил в функции\процедуры\методы, что, очевидно, далеко не всегда корректна.
                Только логически связанный копипаст нужно рефакторить, а в указанных мною случаях он полезен
                Ответить
                • Я имел ввиду что сейчас копипаст нужно конечно убрать. А если он понадобится -- добавить обратно
                  Ответить
            • Да ну?

              $("#reg2")[flag ? 'slideUp' : 'fadeOut'](), flag = !flag;

              И где его пришлось полностью переписывать? Пару букв подправить и всё.
              Ответить
              • а это называется рефакторинг, и не надо подменять понятия )
                дело тут не в количестве букв (их мало вообще, поскольку пример короток), а в том, что вы заменили безусловную логику (с тоггл) на условную
                Ответить
                • Да-да, я уже понял, что говнокод — труЪ, а все, кто пишут код без душка — идиоты.
                  Ответить
                  • опять передергиваете. а я только об этом: http://govnokod.ru/3633#comment37515

                    а вообще как раз только идиот вылизывает свой код до полной труеты. Где не критично - можно и не оптимизировать код, лишь бы понятный был. Почему? А потому, что не всегда ясно, как придется изменить код в будущем, а зря тратить силы на мелочи, вместо концентрации на задаче - мягко говоря, неумно
                    Ответить

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

Переведи на "PHP", guest!

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


    8