Есть ли метод расфокусировки jQuery?


193

Как я могу снять фокусировку с текстовой области или ввода? Я не мог найти $('#my-textarea').unfocus();метод?


также не функция jQuery, .focusout()которая немного отличается от blur() api.jquery.com/focusout , цитируя документThis is distinct from the blur event in that it supports detecting the loss of focus on descendant elements (in other words, it supports event bubbling)
Adrien Be

Ответы:


336
$('#textarea').blur()

Документация по адресу: http://api.jquery.com/blur/


Странный. Я пытаюсь размыть (), прежде чем окно теряет фокус, поэтому, когда я возвращаюсь, текстовая область не выделяется по умолчанию. Кажется, не работает :(
Алек Смарт

что-то вроде $ ('window'). blur (function () {$ ('# textarea'). blur ();});
Алек Смарт

Может быть, вам нужно размыть текстовую область на фокусе окна?
Джефф

7
может быть, вы пытаетесь связать событие до загрузки DOM. Попробуйте поместить код в обработчик готовности страницы следующим образом: $ (document) .ready (function () {$ ('# textarea'). Blur ()})

прекрасно работает $('#textarea').bind('blur', function() ...)также с
Федир Рыхтик

10

Исходя из вашего вопроса, я считаю, что ответ заключается в том, как вызвать размытие , а не просто (или даже) установить событие:

 $('#textArea').trigger('blur');

Этот ответ имел больше смысла для меня. Я хотел знать, как отключить выделение текста или сделать фокус ввода текста несфокусированным. Я знал, что .blur () существует, но я не совсем понял правильный синтаксис для этого использования. +1
Partack

7
Без параметров .blur()это ярлык для .trigger("blur") api.jquery.com/blur
andreszs

7

Думаю, вы ищете .focusout()


10
-1 focusoutзапускается только после того, как вход уже начал терять фокус. Спрашивающий хочет поместить элемент в это состояние, так что обработчик обратного вызова не поможет ему developer.mozilla.org/en-US/docs/Web/Reference/Events/focusout api.jquery.com/focusout
buley

Я искал этот метод, и это был первый результат Google для "JQuery Select UnFocus"
машина жаждет


0

Мне нравится следующий подход, так как он работает для всех ситуаций:

$(':focus').blur();

-12

Так что вы можете сделать это

$('#textarea').attr('enable',false)

попробуйте и дайте отзыв


11
Это отключит текстовую область, а не расфокусирует ее.
Kurotsuki
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.