События клик. Почему так происходит.
Здравствуйте.
Есть такая структура:
<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, время: 10:15. |