2010-04-02 1 views

ответ

27

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

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

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

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

+2

Лучше поместить чек как 'if ('activeElement' в документе)' сначала, так как он не поддерживается во всех браузерах. – bobince

+0

@bobince: Добавил его в качестве меры предосторожности. 'activeElement' поддерживается в последних версиях Firefox, Opera, WebKit и IE с 6 по 8, а также является частью спецификации HTML5, поэтому, надеюсь, она будет широко поддерживаться в любом случае. –

1

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

т.е.

$(document)[0].focus() 

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

Смежные вопросы