События клик. Почему так происходит.
Здравствуйте.
Есть такая структура: <ul class="vmenu"> <li class="parent"><a href="#">Главная Категория</a></li> <ul class="dropdown"> <li><a href="#"><span>Сотрудники</span></a></li> </ul> </li> <li class="parent"><a href="#"><span>Главная Категория</span></a> <ul class="dropdown"> <li><a href="#"><span>Фото</span></a></li> </ul> </li> </ul> Нужно на главные категории повесить "Клик" и отменить действие по ссылке по умолчанию, по остальным оставить переход по адресу, Делаю так: $(".parent A:first-child").bind('click',function(e){ e.preventDefault(e); var _this = $(this); if(_this.next().css('display') == 'none') _this.next().slideDown('fast'); else _this.next().slideUp('fast'); _this.toggleClass('selected',5); }) По главным всё нормально отрабатывает и отменяет переход. А вот почему то по вложенным в класс "dropdown" ссылкам переход тоже отменяется, почему так? Ведь я выбираю и вешаю клик только на первые элементы класса ".parent". |
Цитата:
А на самом деле селектор .parent A:first-child выбирает все вложеные в .parent "первые" ссылки... Т.ч. меняй селектор. .parent > A:first-child |
Для данной структуры достаточно
.parent > a |
И bind советую поменять на on
С версии, если не ошибаюсь 1.7 bind и live считаются устаревшими, хотя пока поддерживаются. |
Цитата:
|
Часовой пояс GMT +3, время: 13:37. |