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

Исключение для элементов списка подменю при раскрытии меню

19.06.2017, 09:49. Показов 928. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пытаюсь сделать реализацию многоуровневого меню с jQuery. Возникла такая проблема, что при использовании $('.nav-menu li') раскрываются сразу все вложенные списки, в том числе подменю.
Как правильно прописать исключение для элементов списка подменю(nav-menu_into), чтобы скрипт на них не применялся?
JavaScript
1
$('.nav-menu li').not("#into").hover(function () {
и
JavaScript
1
$(".nav-menu li").not(document.getElementById("#into")).
не сработало.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div>
    <nav>
      <ul class="nav-menu">
        <li><a href="#">Заголовок 1</a>
          <ul>
            <li><a href="#">Меню 1</a></li>
          </ul>
        </li>       
        <li><a href="#">Заголовок 2</a>
          <ul id="nav-menu_into">
            <li><a href="#">Меню 2</a></li>             
            <li id="into"><a href="#">Меню 3</a>                
                <ul>
                    <li id="into"><a href="#">Подменю</a></li>
                </ul>                   
            </li>           
          </ul>
        </li>
    
      </ul>
    </nav>
  </div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
$(document).ready(function(){
    $('.nav-menu li').not("#into").hover(function () {
        clearTimeout($.data(this,'timer'));
        $('ul',this).stop(true,true).slideDown(200);
    }, function () {
        $.data(this,'timer', setTimeout($.proxy(function() {
            $('ul',this).stop(true,true).slideUp(200);
        }, this), 100));
    });
 
$('#nav-menu_into li').hover(function () { 
clearTimeout($.data(this,'timer')); 
$('ul',this).stop(true,true).slideDown(200); 
}, function () { 
$.data(this,'timer', setTimeout($.proxy(function() { 
$('ul',this).stop(true,true).slideUp(200); 
}, this), 100)); 
});
});
</script>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.06.2017, 09:49
Ответы с готовыми решениями:

При раскрытии подменю поворот стрелки вниз
Добрый день, в пунктах меню есть абсолютно позиционированные стрелки справа, подменю сделал только...

Обновление выпадающего списка при раскрытии
Есть список с аудиоустройствами. До того как на него нажали и он раскрылся нужно обновить все...

Navbar не отталкивает content при раскрытии меню
Здравствуйте! Подскажите, пожалуйста, как сделать так, чтобы при раскрытии меню navbar не...

1
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
23.06.2017, 10:44
https://jsfiddle.net/o4bhk9aa/

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
<div>
    <nav>
      <ul class="nav-menu">
        <li><a href="#">Заголовок 1</a>
          <ul>
            <li><a href="#">Меню 1</a></li>
          </ul>
        </li>       
        <li><a href="#">Заголовок 2</a>
          <ul id="nav-menu_into">
            <li><a href="#">Меню 2</a>
                <ul>
                    <li id="into"><a href="#">Подменю</a></li>
                </ul>
            </li>             
            <li id="into"><a href="#">Меню 3</a>                
                <ul>
                    <li id="into"><a href="#">Подменю</a></li>
                </ul>                   
            </li>           
          </ul>
        </li>
    
      </ul>
    </nav>
  </div>
JavaScript
1
2
3
4
5
6
7
8
9
$(document).ready(function(){
  $('ul.nav-menu').find('ul').hide();
  $('ul.nav-menu li').hover( 
    function() {
        $(this).children('ul').show();},
    function() {
        $(this).children('ul').hide();}
    );
});
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2017, 10:44
Помогаю со студенческими работами здесь

Выпадающее меню. Не фиксируется бордер раздела меню, при использовании подменю
Делаю выпадающее меню, почти все сделал, осталось по сути немного, и не могу закончить. Вот код:...

Раздвижное меню: отображение элементов подменю.
Пытаюсь сделать раздвижное меню (аккордеон), так как не разбираюсь в javascript, решил взять из...

Сдвиг списков элементов при раскрытии блока!
Здравствуйте! Не могу ни как понять в чем проблема! При нажатии на &quot;меню&quot; блок div сдвигает списки...

Адаптация элементов при раскрытии в полно экранный режим
Здравствуйте, прошу помочь или объяснить как сделать так чтобы при развёртывании в полноэкранный...

При нажатии на меню раздела открывать подменю
Доброй ночи подскажите пожалуйста, как сделать так чтобы при нажатии на меню раздела открывались...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
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. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru