Я пытаюсь отключить клавишу возврата в моем приложении jQuery, чтобы браузер не возвращался на страницу назад. Однако я не хочу отключать его, если элемент input или textarea сфокусирован, потому что я хочу, чтобы backspace там работал правильно.
Итак, я хочу выбрать все, что не является вводом или текстовой областью.
Вот код. Проблема в том, что он срабатывает для каждого элемента, даже для ввода и текстовых полей.
$(':not(input, textarea)').keydown(function(e) {
if (e.keyCode === 8) {
return false;
}
});
Я не понимаю, почему не работает функция: not (). Есть ли лучший способ сделать это?
Обратите внимание, что если я удалю функцию: not (), она будет работать правильно. То есть он запускается только для элементов input и textarea.
РЕДАКТИРОВАТЬ: на основе принятого ответа, вот код, который работает. Я уверен, что есть лучший способ сделать это.
$(document).keydown(function(e) {
var element = e.target.nodeName.toLowerCase();
if (element != 'input' && element != 'textarea') {
if (e.keyCode === 8) {
return false;
}
}
});