Ваш код был:
$('.parent li').click(function(){
event.preventDefault();
$('.child').slideToggle('slow');
});
$('.child')
выбирает все «дети».Измените его на $('.child', this)
, чтобы выбрать только те, которые находятся внутри текущего элемента.
Событие click
всплывает, поэтому, чтобы убедиться, что только щелчок по самому родителю переключает состояние, вы можете сравнить event.target
с this
.
Однако это быстрее:
$('.parent > li > a').click(function(){
event.preventDefault();
$(this).parent().find('.child').slideToggle('slow');
});
См. скрипка
РЕДАКТИРОВАТЬ как@ Джаспер указал, что это короче / быстрее:
$('.parent > li > a').click(function(){
event.preventDefault();
$(this).siblings('.child').slideToggle('slow');
});