JQuery. Not () эквивалент в JavaScript - PullRequest
0 голосов
/ 17 января 2019

Я хочу реализовать функцию быстрого доступа, используя простое нажатие клавиши, хотя я не хочу запускать горячие клавиши, когда пользователь вводит ввод или текстовую область.

Я заметил, что Jquery имеет метод .not (), который позволяет это:

$(document).not("input").on('keyup keydown keypress', function(event) {
    console.log(event);
    if(event.key == 'n') {
        alert('n pressed outside of input');
    }
});

Поэтому я ищу эквивалент в простом javascript или функцию, которая бы проверяла, не фокусирует ли пользователь ввод.

document.onkeypress = (event) => {
    if (event.key == 'n') {
        console.log('n has been pressed! (input or not)');
    }
};

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Ваш ответ правильный, но на ваш вопрос: Jquery .not ("input") эквивалент в javascript document.querySelectorAll ( ": нет (вход)")

.

Возвращает массив элементов, кроме входных элементов

0 голосов
/ 18 января 2019

Ответ опубликован @ChrisG в комментариях

Хотя это НЕ заменитель .not () это решило мою проблему

Действительно, event.target.tagName возвращает имя тега в верхнем регистре для моей части.

Поэтому этот код работает:

document.onkeypress = (event) => {
    if (event.key == 'n' && event.target.tagName != 'INPUT' && event.target.tagName != 
    'TEXTAREA') {
        addTodo.click();
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...