Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.05.2021, 19:21
Кандидат Javascript-наук
Отправить личное сообщение для fori Посмотреть профиль Найти все сообщения от fori
 
Регистрация: 27.01.2021
Сообщений: 117

Тоесть, если таб пытается поставить фокус на елемент который пренадлежит div-у — e.preventDefault(), если таб пытается установить фокус на елемент который не принадлежит div-у — (пропустить событие и разрешыть поставить фокус на такой елемент)
Узнать принадлежит ли елемент родителю, таб на который надо блокировать можно по функции (аналог jquery-ного варианта parentHas)
parentsHas(el, target) {
      let current = el;
      while (
        current.parentNode != null &&
        current.parentNode != document.documentElement
      ) {
        if (current == target) {
          return true;
        } else {
          current = current.parentNode;
        }
      }
      return false;
    },
Ответить с цитированием
  #12 (permalink)  
Старый 10.05.2021, 19:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

fori,
не могу подсказать, логика слишком заумная.
Ответить с цитированием
  #13 (permalink)  
Старый 10.05.2021, 19:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

fori,
попробую спросить по другому, чем предложенный код не устроил?
Ответить с цитированием
  #14 (permalink)  
Старый 10.05.2021, 20:15
Кандидат Javascript-наук
Отправить личное сообщение для fori Посмотреть профиль Найти все сообщения от fori
 
Регистрация: 27.01.2021
Сообщений: 117

В компонетне я поставил ваш код в mounted
mounted() {
    document.addEventListener("keydown", function (event) {
      let { target, code } = event;
      if ((target = target.closest(".body") && code == "Tab"))
        event.preventDefault();
    });
  },

При нажатии таб - таб попадает на инпут, дальнейшые нажатия игнорироются
Но я хотел бы сделать так чтоб таб работал на отображающейся странице компонента (opacity:1) и не работал на не отображающейся (opacity:0)
Если вам будет интересен результат - полный код компонента в вложении (i18n + vue 2 cli)
Вложения:
Тип файла: txt Auth.vue.txt (10.2 Кб, 1 просмотров)
Ответить с цитированием
  #15 (permalink)  
Старый 10.05.2021, 20:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

fori,
пока без вариантов ...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переключение таблиц стилей в js t1gor Общие вопросы Javascript 15 17.07.2011 09:50
Отправка POST через JS без перехода на другую страницу m-mikle Общие вопросы Javascript 17 14.04.2010 15:24
Js + moo tools плавная смена div mansoff Events/DOM/Window 1 03.02.2010 11:11
Работа js +php без обновления страницы Jekel Javascript под браузер 18 29.11.2009 20:17
Html метки + div + JS boltayka Events/DOM/Window 1 07.09.2009 17:21