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

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

05.08.2017, 10:38. Показов 3209. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru