Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2011, 09:28
Аватар для tropiko
Аспирант
Отправить личное сообщение для tropiko Посмотреть профиль Найти все сообщения от tropiko
 
Регистрация: 23.06.2011
Сообщений: 44

Динамически разворачивающийся/сворачивающийся список
Здравствуйте. Делаю разворачивающийся вложенный список (с jQuery). При нажатии на span.expand разворачивается/сворачивается следующий список <ul>, вложенный в этот же <li>. В общем, разметка такая:

<!DOCTYPE html>
<head></head>
<body>
<ul class="jlevel_1">
  <li><span class="expand">Cat1</span>
    <ul class="jlevel_2 submenu">
      <li>Subitem Cat1 Item1</li>
      <li>Subitem Cat1 Item2</li>
      <li><span class="expand">Subitem Cat1 Item3</span>
        <ul class="jlevel_3 submenu">
           <li>Subitem Cat1 Item3 subitem1</li>
           <li>Subitem Cat1 Item3 subitem1</li>
        </ul>
      </li>
    </ul>
  </li>
  <li><span class="expand">Cat2</span>
     <ul class="jlevel_2 submenu">
       <li>Subitem Cat2 Item1</li>
       <li>Subitem Cat2 Item2</li>
     </ul>
  </li>
</ul>

</body>
</html>


JS такой:
<script type="text/javascript">
		jQuery(document).ready(function(){
			jQuery("ul.submenu").hide();//Свернули все вложенные списки
			jQuery("span.expand").click(function(){
				var e = jQuery(this).next();
				e.slideToggle("fast");//Сворачиваем/разворачиваем 
			});
		});
</script>


Мне необходимо чтобы при разворачивании одного элемента, тот, который был развернут до этого, свернулся (это касается и списков третьего уровня jlevel_3). Что-то типа эффекта Accordeon
На самом деле вложенных списков много, и элементов в них тоже.

jQuery ковыряю очень недолго, поэтому need help.
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2011, 11:30
Аватар для tropiko
Аспирант
Отправить личное сообщение для tropiko Посмотреть профиль Найти все сообщения от tropiko
 
Регистрация: 23.06.2011
Сообщений: 44

UP

Мне бы не то чтобы готовый код, просто подсказку, как решить проблему малой кровью, т.е. не изменяя разметки (это важно).
Ответить с цитированием
  #3 (permalink)  
Старый 23.06.2011, 12:46
Аватар для SlavaPav
Аспирант
Отправить личное сообщение для SlavaPav Посмотреть профиль Найти все сообщения от SlavaPav
 
Регистрация: 25.02.2010
Сообщений: 57

.submenu {
    display: none;
}

.submenu.active {
    display: block;
}


$('.expand').click(function() {
    $('.jlevel_1').find('.active').removeClass('active');
    $(this).next().toggleClass('active');
});
Ответить с цитированием
  #4 (permalink)  
Старый 24.06.2011, 10:38
Аватар для tropiko
Аспирант
Отправить личное сообщение для tropiko Посмотреть профиль Найти все сообщения от tropiko
 
Регистрация: 23.06.2011
Сообщений: 44

SlavaPav,
Все здорово, только при открытии <ul class="jlevel_3"> родительский список сворачивается =(

Но я смысл понял, спасибо за ответ
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающий список с возможностью ввода текста LA_ Элементы интерфейса 6 27.10.2010 16:30
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20
Работает ли jquery с html сформированным динамически? warobushek Общие вопросы Javascript 5 13.06.2010 08:26
Как сделать динамически загружаемый список? mikeles AJAX и COMET 9 13.11.2009 15:13