jQuery: как узнать, имеет ли элемент ввода фокус

Я разрабатываю приложение (игру), которым можно было бы управлять с помощью клавиатуры. Проблема в том, что он также содержит некоторые элементы ввода по умолчанию (например, поля формы входа). Чтобы игра не реагировала на нажатия клавиш, когда пользователь вводит свои учетные данные, я делаю такую ​​проверку:

if (isDef($("*:focus").attr("id")))
    return;

Она отлично работает практически во всех основных браузерах, кроме IE. В Internet Explorer элементы div также могут иметь фокус на них, и почти в каждом случае какой-либо элемент на странице имеет на них фокус. Таким образом, я хочу проверить, имеет ли фокус не какой-то элемент, а какой-то элемент, который может принимать ввод с клавиатуры. В моем случае это ограничено текстовой областью или вводом. Как проверить, есть ли фокус у элементов этих двух типов?

12
задан Denis Kulagin 27 March 2012 в 07:42
поделиться