Хороший вопрос.
Видимо чтобы jquery не зря подключать =) Просто анимация вклюачется в данной ситуации в jquery всего 3мя знаками.
А вообще, для красоты. Сейчас ведь в самой системе почти любое действие происходит с анимацией и пользователь к этому уже привык.
C анимацией конечно) Хотя конкретно анимация — строк 15-25. Но еще например нормальная работа с className, нормально добавление событий (addEventListener вроде в ie не работает + onclick везде атрибут а в ие через жопу) и т.д… Все это есть в jquery сразу.
Проверил на 281м элементе LI, тормоза не заметны даже в IE6 =) (комп не очень хороший)
Кстати, если обработчик включить через $.live() то скорее всего он и повесится на один элемент.
В общем jquery уже не тот(в лучшую сторону).
Навскидку вам скажу, что код о котором вы говорите, состоял бы примерно из 70-100 строчек, вместо 9 здесь. И очень уж он зависит от используемых в проекте наработок (пусть даже своих).
Почему не tree это не ко мне. Я согласен, что лучше повесить на один элемент обработчик и смотреть target, но 1) при небольшом количестве элементов тормозов не будет, 2) если тормозов нет, то эффективней ток код который проще написать. Согласитесь этот проще чем и читабильней, чем с проверками типа
var targetTagName=e.targetTagName;
switch (targetTagName) { ...
Можно конечно обойтись и без jquery, никаких проблем, просто код опять же станет не настолько интуитивно понятным, и писать его несколько дольше. Что для меня непростительная роскошь при комментировании на хабре)
3 месяца на маке — месяц назад слетел винч) Сервис в питере тоже говно. Если честно тоже стало не ясно за что такие деньги, хотя работать на нем очень приятно)
Может и бестолковое, елси рассматривать как сравнение. А если как 2 независимых рассказа о 2х языках, то может и полезно. Я вот банально не знаю что выбрать. С одной стороны 37signals с другой GAE. Вот и стою на распутье…
Ну вместо /?module=v2_start сделать просто /start и т.д.
Просто чтобы когда в адресной строке адреса подставляются, легче было определить то или не то.
Видимо чтобы jquery не зря подключать =) Просто анимация вклюачется в данной ситуации в jquery всего 3мя знаками.
А вообще, для красоты. Сейчас ведь в самой системе почти любое действие происходит с анимацией и пользователь к этому уже привык.
Кстати, если обработчик включить через $.live() то скорее всего он и повесится на один элемент.
В общем jquery уже не тот(в лучшую сторону).
var targetTagName=e.targetTagName;
switch (targetTagName) { ...
Можно конечно обойтись и без jquery, никаких проблем, просто код опять же станет не настолько интуитивно понятным, и писать его несколько дольше. Что для меня непростительная роскошь при комментировании на хабре)
Вот это:
if (ul=$('ul:first',this.parentNode)) {
я бы заменил на:
var ul=$('ul:first',this.parentNode);
if (ul.length) {
Просто чтобы когда в адресной строке адреса подставляются, легче было определить то или не то.