Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
При клике на #header li, со всех элементов (#header li, a, img) уберается класс .active, и добавляется к (#header li, a, img) тем элементам, на которые кликнули.
Вот, у меня вышло такое Но вы сильно не смейтесь, собственно вопрос:
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
etoYA|, ну я бы класс активности присваивал только одному элементу li, а стили уже для li.active, li.active a, li.active a img делал.
Все равно клик обрабатывается для элемента списка, так что проблем быть не должно
etoYA
Отправлено: 16 Апреля, 2012 - 19:31:52
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
IllusionMH, как вариант, попробую.
IllusionMH
Отправлено: 16 Апреля, 2012 - 19:35:48
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Хотя обработчик лучше назначить для ссылок, и тогда можно убрать действие по умолчанию, а класс присваивать $(this).parent().addClass('active');
P.S. Слишком много обращений к DOM. Убирать лучше целенаправленно у одного(если использовать предложенный выше вариант, ну или у всех элементов с этим классом) элемента $('#header .active').removeClass('active');
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
tuareg, тут придется проверить, т.к. вроде(не уверен) здесь опять будет происходить тот же самый поиск по селектору, но с указанием основного элемента не document, а li. так что не факт что быстрее. Хотя могу и ошибаться.
Но все равно навешивать трем вложенным элементам класс - лишнее
tuareg
Отправлено: 17 Апреля, 2012 - 00:24:01
Участник
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
IllusionMH пишет:
Но все равно навешивать трем вложенным элементам класс - лишнее
Это не лишнее это мазохизм
IllusionMH
Отправлено: 17 Апреля, 2012 - 00:32:24
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
tuareg, все-таки find работает медленнее
_http://jsperf.com/jquery-parent-children-vs-find
здесь не нажатие, а просто вместо this подставляется конкретный элемент
tuareg
Отправлено: 17 Апреля, 2012 - 00:48:33
Участник
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Согласен. Но тут если честно, выигрыш "на спичках" получается. А если структура изменится? Добавится какой-нибудь строчный элемент? Будет
Я имел ввиду делегирование события, а не поиск элементов.
IllusionMH
Отправлено: 17 Апреля, 2012 - 01:17:22
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
tuareg пишет:
tuareg пишет:
лучше в плане оптимизации
Я имел ввиду делегирование события, а не поиск элементов.
Значит я неправильно понял
Согласен, так действительно гораздо лучше
(если я правильно понял принцип: обработчик один, и вешается на элемент полученный перед .on, но в this передается элемент, соответствующий селектору по пути "всплытия"(или как там эта фаза когда от источника к документу) или не срабатывает)
Как-то я забыл о том, что в on можно передавать селектор. Спасибо
tuareg пишет:
А если структура изменится? Добавится какой-нибудь строчный элемент? Будет
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.