Есть ли метод расфокусировки 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/

RichieHindle
источник
Странный. Я пытаюсь размыть (), прежде чем окно теряет фокус, поэтому, когда я возвращаюсь, текстовая область не выделяется по умолчанию. Кажется, не работает :(
Алек Смарт
что-то вроде $ ('window'). blur (function () {$ ('# textarea'). blur ();});
Алек Смарт
Может быть, вам нужно размыть текстовую область на фокусе окна?
Джефф
7
может быть, вы пытаетесь связать событие до загрузки DOM. Попробуйте поместить код в обработчик готовности страницы следующим образом: $ (document) .ready (function () {$ ('# textarea'). Blur ()})
прекрасно работает $('#textarea').bind('blur', function() ...)также с
Федир Рыхтик
10

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

 $('#textArea').trigger('blur');
sonjz
источник
Этот ответ имел больше смысла для меня. Я хотел знать, как отключить выделение текста или сделать фокус ввода текста несфокусированным. Я знал, что .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

Это работает для меня:

// Document click blurer
$(document).on('mousedown', '*:not(input,textarea)', function() {
    try {
        var $a = $(document.activeElement).prop("disabled", true);
        setTimeout(function() {
            $a.prop("disabled", false);
        });
    } catch (ex) {}
});
д'Артаньян Вечнозеленая Барбоза
источник
0

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

$(':focus').blur();
Джавид
источник
-12

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

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

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

ржунимагу
источник
11
Это отключит текстовую область, а не расфокусирует ее.
Kurotsuki