jQuery unfocusメソッドはありますか?


193

テキストエリアまたは入力のフォーカスを解除するにはどうすればよいですか?$('#my-textarea').unfocus();メソッドが見つかりませんでしたか?


また.focusout()blur() api.jquery.com/focusoutとわずかに異なるjQuery関数ではなく、ドキュメントを引用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

回答:


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

ドキュメント:http : //api.jquery.com/blur/


奇妙な。ウィンドウがフォーカスを失う前にblur()を実行しようとしているため、戻ったときにデフォルトでテキスト領域が選択されていません。動作していないようです:(
Alec Smart

$( 'window')。blur(function(){$( '#textarea')。blur();});のようなもの
アレックス

ウィンドウフォーカスのテキスト領域をぼかす必要があるかもしれませんか?
ジェフ

7
DOMが読み込まれる前にイベントをバインドしようとしている可能性があります。次のように、コードをページの準備完了ハンドラーに配置してみてください:$(document).ready(function(){$( '

偉大な作品$('#textarea').bind('blur', function() ...)
Fedir RYKHTIK

10

あなたの質問に基づくと、答えは、イベントを設定するだけでなく(またはさらには)、ぼかしトリガーする方法だと思います:

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

この答えは私にはもっと理にかなっています。ハイライトを解除する方法、またはテキスト入力を非フォーカスにする方法を知りたいと思っていました。私は.blur()が存在することを知っていましたが、この使用法の正しい構文を本当に理解していませんでした。+1
パートタック2013

7
パラメータ.blur()がない場合、.trigger("blur") api.jquery.com
blurの

7

あなたが探していると思います .focusout()


10
-1 focusoutは、入力が既にフォーカスを失い始めた後にのみ発生します。質問者は、その状態で要素を入れたいSOAコールバックハンドラ彼には良いの行いませんdeveloper.mozilla.org/en-US/docs/Web/Reference/Events/focusoutの api.jquery.com/focusoutを
buley

私はこの方法を探していた、これは「非フォーカスを選択jQueryの」のための最初のGoogleの結果だった
機械憧れ

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
それはフォーカスを外すのではなく、テキスト領域を無効にします。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.