Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Кликабельное меню. (https://javascript.ru/forum/jquery/45142-klikabelnoe-menyu.html)

sorokster 16.02.2014 18:16

Кликабельное меню.
 
Здравствуйте! В общем, изложу суть вопроса. Есть меню такого вида. Изначально, подпункты должны быть скрыты, а пункты, само собой видны. Как сделать так, чтобы при нажатии на "Пункт 1" открылись его подпункты, а все остальные Пункты вместе с их подпунктами исчезли?

<ul>
  <li>Пункт 1
    <ul>
      <li>Подпункт 1</li>
      <li>Подпункт 2</li>
      <li>Подпункт 3</li>
    </ul>
  </li>
  <li>Пункт 2
    <ul>
      <li>Подпункт 1</li>
      <li>Подпункт 2</li>
      <li>Подпункт 3</li>
    </ul>
  </li>
  <li>Пункт 3
    <ul>
      <li>Подпункт 1</li>
      <li>Подпункт 2</li>
      <li>Подпункт 3</li>
    </ul>
  </li>
</ul>

рони 16.02.2014 18:27

sorokster,
поиск отрубили? в гугле забанили?
Выпадающее меню на jquery

sorokster 16.02.2014 18:41

Цитата:

Сообщение от рони (Сообщение 297898)
sorokster,
поиск отрубили? в гугле забанили?
Выпадающее меню на jquery

Не совсем то, чего я хотел.
Мне нужно, чтобы все пункты, кроме нажатого исчезли, и появились его подпункты. Т.е., изначально, мы видим Пункт 1, Пункт 2, Пункт 3.
И При нажатии на Пункт 1 появляются его подпункты, а Пункт 2 и Пункт 3 исчезают. Соответственно, после нажатия у нас останется видно:
Пункт 1
Подпункт 1
Подпункт 2
Подпункт 3
Я надеюсь, что доступно объяснил :)
А поиском пользовался и желаемого результата не получил, по-этому решил обратиться за помощью к вам, на форум :)

рони 16.02.2014 19:03

sorokster,
а как потом попасть в пункт 2 или 3 ?

danik.js 16.02.2014 19:06

это называется "аккордеоном". По этому слову гуглится на раз.

Цитата:

Сообщение от sorokster
Пункт 2 и Пункт 3 исчезают

Эмм. Совсем исчезают? Тогда я хз как это называется )).

sorokster 16.02.2014 19:14

рони, кнопку назад сделать, к примеру.
Я хочу сделать меню из картинок. Грубо говоря, нажимаешь на картинку "цветы" и после нажатия, откроются картинки относящиеся к цветам "хризантемы", "розы" и прочее.

Или может есть какой-то способ проще? Возможно, это и глупо, спорить не буду :)

рони 16.02.2014 19:17

:blink: режим назад -- нажать на тотже пункт
<!DOCTYPE HTML>
<html>
<head>
  <title></title>
  <meta charset="utf-8" />
  <style type="text/css">
    li ul {
    display: none;
  }
  </style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function () {
	$('#menu > li').click(function (event) {
	   if(event.target != this ) return;
       $(this).siblings().toggle()
       $(this).children("ul").toggle() ;
       event.stopPropagation();
	});
});
</script>
</head>
<body>
<ul id="menu">
  <li>Пункт 1
    <ul>
      <li>Подпункт 1</li>
      <li>Подпункт 2</li>
      <li>Подпункт 3</li>
    </ul>
  </li>
  <li>Пункт 2
    <ul>
      <li>Подпункт 1</li>
      <li>Подпункт 2</li>
      <li>Подпункт 3</li>
    </ul>
  </li>
  <li>Пункт 3
    <ul>
      <li>Подпункт 1</li>
      <li>Подпункт 2</li>
      <li>Подпункт 3</li>
    </ul>
  </li>
</ul>
</body>
</html>

sorokster 16.02.2014 19:20

рони, огромное спасибо!

danik.js 16.02.2014 19:29

Очень неудачное решение для пользователей. То есть неочевидная навигация получается. А навигация - это важнейший элемент.
Цитата:

Сообщение от рони
if(event.target != this ) return;

А что делает эта строчка?

рони 16.02.2014 19:57

Цитата:

Сообщение от danik.js
А что делает эта строчка?

запрещает реагировать на клик подпункта


Часовой пояс GMT +3, время: 19:24.