Фокус

12
W1
На сайте с 22.01.2021
Offline
306
#11
Radrigo #:
как сделать, чтобы скрипт сам определял последнюю ссылку в подменю? 
        $('.nav-top__sp ul li:last-child a').focusout(
                function () {
                        $(this).parents('.nav-top__sp').removeClass('focus-menu');
                }
        );
Radrigo #:
Еще хотелось бы добавить, чтобы при клике за пределами подменю оно пропадало

Вот с этим сложнее, могу только сделать, чтобы при любом клике оно пропадало

        $('*').on('click', function(){
                $('.nav-top__sp').removeClass('focus-menu');
        });

Чтобы за пределами - простого ничего в голову не приходит.

Мой форум - https://webinfo.guru –Там я всегда на связи
R
На сайте с 01.12.2012
Offline
86
#12
webinfo #:

Вот с этим сложнее, могу только сделать, чтобы при любом клике оно пропадало

Чтобы за пределами - простого ничего в голову не приходит.

Спасибо большое за подсказку с :last-child. Забыл про неё.

По-поводу клика вне блока подменю нашёл такой вариант. Вроде всё работает. Собственно весь код

$(document).ready(function () {
        $('.nav-top a').focus(
                function () {
                        $(this).parents('.nav-top__sp').addClass('focus-menu');
                }
        );
        $('.nav-top__sp ul li:last-child a:last-child').focusout(
                function () {
                        $(this).parents('.nav-top__sp').removeClass('focus-menu');
                }
        );
        $(document).click(
                function (e) {
                        if (!$('.nav-top__sp ul').is(e.target)) {
                                $('.nav-top__sp').removeClass('focus-menu');
                        };
                });
});

Буду признателен подсказке, если считаете, что что-то не так или лучше сделать по-другому

W1
На сайте с 22.01.2021
Offline
306
#13
Radrigo #:
По-поводу клика вне блока подменю нашёл такой вариант. Вроде всё работает.

Да, в вашем случае работает. Благодаря тому, что элемент <li> полностью заполняется элементом <a>. Так что сойдёт.

Korew
На сайте с 31.12.2007
Offline
195
#14
Radrigo :
Когда при помощи Tab делаю фокус на ссылку, нужно чтобы к родительскому элементу с классом nav-top__sp добавлялся ещё один класс.

вам класс нужно добавить или стили какие-то применить? 
Если второе - то вам вообще не нужен js

:focus-within - CSS | MDN
:focus-within - CSS | MDN
  • 2021.08.03
  • developer.mozilla.org
CSS Псевдо-класс   соответствует элементу, который либо сам находится в фокусе, либо содержит элемент, который находится в фокусе. Другими словами, он представляет элементу, который соответствует псевдоклассу либо имеет потомка, который...
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий