Как я все размываю, сосредоточившись на документе?

с помощью JQuery/javascript

Это: $(document).focus()?

Ответ 1

Метод .focus() в элементе, обернутом jQuery, будет привязан к событию onfocus, если функция передается в качестве первого параметра или запускает присоединенные обработчики событий без параметров.

Я не уверен, почему вы пытаетесь сделать то, что вы пытаетесь сделать, но если вы пытаетесь размыть текущий активный элемент, независимо от того, какой элемент он есть, вы можете использовать:

if ("activeElement" in document)
    document.activeElement.blur();

Это не рекомендуется, так как это сделает reset порядок табуляции и потенциально раздражает пользователей, отправляющих клавиатуру.

Ответ 2

$().method() запускает прослушиватели, связанные с этим методом. Если вам нужно вызвать функции на элементах dom, проиндексируйте объект jQuery.

то есть.

$(document)[0].focus()

Хотя вы бы просто не использовали document.focus, вероятно, вопрос, на который стоит ответить.

Ответ 3

ОБНОВЛЕНИЕ: В Typescript вы должны просто привести к HTMLElement следующим образом:

(document.activeElement as HTMLElement).blur();
// or
(<HTMLElement>document.activeElement).blur();

Оригинальный ответ ниже.


Принятый ответ не будет работать в TypeScript, потому что document.activeElement является типом Element, а не HTMLElement, поэтому технически он не поддерживает blur(). Приведенный ниже метод довольно хакерский, но он работает правильно.

Адаптировано из этого ответа:

const tmp = document.createElement('input');
document.body.appendChild(tmp);
tmp.focus();
document.body.removeChild(tmp);