Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238

Как оставить меню открытым после клика по ссылке

05.08.2017, 10:38. Показов 3174. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос в следующем.
Нужно сделать меню что б при нажатие на первую ссылку выпадающее меню оставалось открытым и не закрывалось, если убрать курсор в сторону.
Как реализовать такую вещь?

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html>
<html lang="en"> 
    <head> 
        <meta charset="utf-8">
        <title>Title</title>
        <meta name="description" content="description">
        <meta name="keywords" content="keywords">
        <link rel="stylesheet" href="css/reset.css">
        <link rel="stylesheet" href="css/styles.css">
        <link rel="shortcut icon" href="favicon.ico">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script src="js/main.js"></script>
        <!--[if lt IE 9]><script src="js/html5shiv.js"></script><![endif]-->
    </head>
    <body>
        <ul>
            <li>
                <a href="#">Link</a>
                <ul class="lock">
                    <li><a href="#">lin1 1</a></li>
                    <li><a href="#">lin1 2</a></li>
                    <li><a href="#">lin1 3</a></li>
                </ul>
            </li>
        </ul>
    </body>
</html>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ul li .lock {
    display: none;
}
 
 
ul li:hover .lock{
    color: green;
    display: block;
}
 
ul li:active .lock{
    color: green;
    display: block;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2017, 10:38
Ответы с готовыми решениями:

Как оставить аккордеон открытым там же при щелчке по ссылке внутри него
Здравствуйте, уважаемые. Я новичок в веб-разработке, я пытался разобраться сам, но у меня не получилось.. 1) Исходные данные: Есть...

Как оставить открытое меню "аккордеона" открытым
Возник еще один вопрос. Если в меню открыт один из разделов, к примеру, второй, то если кликнуть на любую из ссылок раздела, меню...

Как оставить стили hover для объекта после клика на элемент
Есть несколько картинок, при клике на которых определенные данные записываются в input. &lt;script&gt; function myFunction(str) { ...

21
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 11:55
https://codepen.io/asrock/pen/wqoLQe
HTML5
1
2
3
4
5
6
7
8
9
10
<ul>
  <li>
    <a href="#">Link</a>
    <ul class="lock">
      <li><a href="#">lin1 1</a></li>
      <li><a href="#">lin1 2</a></li>
      <li><a href="#">lin1 3</a></li>
    </ul>
  </li>
</ul>
JavaScript
1
2
3
4
5
6
7
(function($){
   'use strict';
  $( '.lock' ).siblings('a').on('click', function(e){
    e.preventDefault();
    $( this ).next('.lock').toggle();
  })
})(jQuery);
CSS
1
2
3
.lock {
  display: none;
}
0
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238
05.08.2017, 13:13  [ТС]
Собрал всё в кучу, подключил к html js результата нету.
При нажатии ничего не происходит.
http://skrinshoter.ru/s/050817/3gFZlTNG

Добавлено через 12 минут
Ошибки в js.
две разные ошибки в разных браузерах (chrome, mozila).
http://skrinshoter.ru/s/050817/zUpBMT6D
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 13:23
Майкл Скоуфилд, перейди по ссылке
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 13:24
Майкл Скоуфилд, и не забудь jQuery подключить
0
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238
05.08.2017, 13:24  [ТС]
какой?
Так что в index.html?

Добавлено через 16 секунд
Всё подключено.
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 13:25
Майкл Скоуфилд, Я - ССЫЛКА!!!
0
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238
05.08.2017, 13:26  [ТС]
Вот результат того что у меня вышло.
Проверьте пожалуйста что не так.
Вложения
Тип файла: rar New folder.rar (684 байт, 3 просмотров)
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 13:27
Майкл Скоуфилд, работает?

Добавлено через 1 минуту
Майкл Скоуфилд, выложите на странице, а не архивом
0
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238
05.08.2017, 13:29  [ТС]
По Вашей ссылке работает, у меня чёт не то

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script src="java.js"></script>
    <title></title>
</head>
<body>
<ul>
  <li>
    <a href="#">Link</a>
    <ul class="lock">
      <li><a href="#">lin1 1</a></li>
      <li><a href="#">lin1 2</a></li>
      <li><a href="#">lin1 3</a></li>
    </ul>
  </li>
</ul>
</body>
</html>
CSS
1
2
3
.lock {
  display: none;
}
JavaScript
1
2
3
4
5
6
7
(function($){
   'use strict';
  $( '.lock' ).siblings('a').on('click', function(e){
    e.preventDefault();
    $( this ).next('.lock').toggle();
  })
})(jQuery);
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 13:35
Майкл Скоуфилд, пропустили в файле скрипта скобку вначале, а тут выложили правильно... Просил же с файла выложить код. Пришлось в файл лезть
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 13:38
Майкл Скоуфилд,
0
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238
05.08.2017, 13:43  [ТС]
код выложил всё как есть в данный момент в редакторе.
код так и не работает.

Добавлено через 3 минуты
Возможна такая проблема из-за того что библиотека js подключена далеко не последняя?
версия 1.8.2
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 13:54
Лучший ответ Сообщение было отмечено Майкл Скоуфилд как решение

Решение

Майкл Скоуфилд,
JavaScript
1
2
3
4
5
6
7
8
9
10
(function($){
  'use strict';
  $( document ).on('ready', function() {
 
  $( '.lock' ).siblings('a').on('click', function(e){
    e.preventDefault();
    $( this ).next('.lock').toggle();
  })
});
})(jQuery);
Добавлено через 54 секунды
Майкл Скоуфилд, добавте документ реди или перенесите подключение в футер
1
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238
05.08.2017, 14:31  [ТС]
Работает.
А не подскажите как прикрепить код что б на его основе можно было сделать дерево менюшек?
То есть сейчас открывается подпункты первого уровня, а мне нужно что б с подпунктов первого уровня открывались подпункты второго уровня и так далее.

Добавлено через 7 минут
Работает.
А не подскажите как прикрепить код что б на его основе можно было сделать дерево менюшек?
То есть сейчас открывается подпункты первого уровня, а мне нужно что б с подпунктов первого уровня открывались подпункты второго уровня и так далее.
Решил этот вопрос добавлением класса .lock1 и дублированием Вашего кода с заменой переменной .lock на .lock1.

Добавлено через 27 минут
Можно в данную функцию добавить плавности к выпаданию, допустим в 1секунду.
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 16:01
Лучший ответ Сообщение было отмечено Майкл Скоуфилд как решение

Решение

Майкл Скоуфилд, ок, 5 мин

Добавлено через 37 минут
Майкл Скоуфилд, ну приблизительно вот, просто добавляете к линку класс "sub_link" и рядом выпадающий список с классом "sub_menu"... Вложенность не ограничена... При добавлении этого класса запрещается переход по этой ссылке и открывает выпадающий список
https://codepen.io/asrock/pen/XaprQz
Можно еще доработать проверки на нажатие других ссылок с закрытием предыдущих, ну и закрытие при нажатии на сайте( вне меню ), но это уже по желанию... Опять же, если не будет работать, то добавьте document on ready, как в прошлых сообщениях. Со стилями, я думаю, разберетесь, чему релятив, чему абсолют позишены ставить
1
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238
05.08.2017, 18:23  [ТС]
Спасибо.
С этим разберусь.
А что за document on ready? Предыдущий код заработал без него. Спрашиваю на будущее, может пригодится.
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 18:26
Майкл Скоуфилд,
JavaScript
1
$( document ).on('ready', function() {
посмотрите в прошлых сообщениях
0
 Аватар для Майкл Скоуфилд
11 / 10 / 3
Регистрация: 25.09.2015
Сообщений: 238
05.08.2017, 18:30  [ТС]
Спасибо.
Не подскажите почему при наведение на ссылки первого уровня курсор становить как при вводе текста, а при наведение уже на ссылки в выпадающим меню курсор, как и должен быть, становится в виде руки?
http://skrinshoter.ru/s/050817/UaTc8ga0
0
38 / 37 / 29
Регистрация: 02.12.2013
Сообщений: 244
05.08.2017, 18:33
Майкл Скоуфилд,
CSS
1
2
3
.sub_link {
cursor: pointer;
}
Ну или к чему там.... Скорее всего, там, где не палец, там нет атрибута href, ну или пустой, точно не помню, меняется ли курсор)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.08.2017, 18:33
Помогаю со студенческими работами здесь

MenuStrip. Как сделать что бы после клика по пункту меню, меню не закрывалось
Здравствуйте. В MenuStrip необходимо несколько items отметить checked, то есть поставить галочки на нескольких пунктах меню. Но после...

Как добиться, чтобы прогресс бар в модальном окне запускался после клика по ссылке данного окна?
Здравствуйте. Подскажите, как сделать, чтобы прогресс бар, установленный в модальном окне, запускался именно после открытия пользователем...

Компьютер зависает после клика по ссылке в браузере
Зависает иногда комп с момента сборки при клике по ссылке в браузере (где-то в среднем каждый 40-й клик) и 1 раз завис после клика на...

Активировать форму после клика по ссылке в LinkLabel
Я хочу реализовать LinkLabel так, чтобы при нажатии на него средней кнопкой мыши происходило открытие ссылки в браузере, после чего чтобы...

Как перехватить событие клика на ссылке и перейти на другую страницу?
Всем привет. Нужно перехватить всплывающее событие клика на теге a, и перейти не по ссылке, а по другому адресу. Вот примет: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru