- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
$(document).ready(function()
{
var flag=true;
$("#reg").click(function()
{
if(flag==true)
{
$("#reg2").slideUp();
flag=!flag;
}
else
{
$("#reg2").slideDown();
flag=!flag;
}
});
});
А лучше .slideToggle()
А вообще toggle.
Мне вот интересно -- Вы правда не увидели говна в этом коде? Тоесть копипаста Вас не смутила?
и еще один плюс поменьше (или побольше?): копипаста позволяет избежать typo-ошибок
а можно примеры?
я не помню наизусть жкуери, но примерно так, даже на примере сабжа:
вот я допустим передумал, и хочу, что бы у меня фигнюшка не вылазила\залезала, а вылазила\растворялась.
тогда сабж достаточно заменить в одном месте (для простоты, не оригинал сабжа, а ваша редакция):
тогда как тру-(безусловно тру)вариант Эвала .slideToggle() пришлось бы переписывать полностью
а про рефакторинг....
именно поэтому его(рефакторинга) природа не механическая, а интеллектуальная. Иначе бы, при гипотетическом туле автоматического кодоанализа и рефакторинга мы бы получали еще более жуткий говнокод, который все похожие куски кода воспринял бы как копипасты и оформил в функции\процедуры\методы, что, очевидно, далеко не всегда корректна.
Только логически связанный копипаст нужно рефакторить, а в указанных мною случаях он полезен
$("#reg2")[flag ? 'slideUp' : 'fadeOut'](), flag = !flag;
И где его пришлось полностью переписывать? Пару букв подправить и всё.
дело тут не в количестве букв (их мало вообще, поскольку пример короток), а в том, что вы заменили безусловную логику (с тоггл) на условную
а вообще как раз только идиот вылизывает свой код до полной труеты. Где не критично - можно и не оптимизировать код, лишь бы понятный был. Почему? А потому, что не всегда ясно, как придется изменить код в будущем, а зря тратить силы на мелочи, вместо концентрации на задаче - мягко говоря, неумно