6

キーボードのいずれかのキーが押されたときにdivを表示するjqueryスクリプトがあります。他の入力領域(textareaまたはtexfields)がページにフォーカスされていない場合にのみスクリプトを実行する条件を、スクリプトに追加したいと思います。そうすれば、divを表示せずにページの残りの部分を実際に入力できます。

$(document).on('keydown', function (e) {
    if (!$('#test').is(':visible')) {
        //######## IF (every input is not active....) {
        if (65 <= e.keyCode && e.keyCode <= 90) {
            $(elem).fadeIn();
            $('#textarea').val('');
            $('#textarea').focus();
            $('#textarea').val(temp);
        }
    }
});

ありがとう。必要に応じて、ページ上の他のすべてのテキストエリアに同じIDを付けることができます。

4

4 に答える 4

17

jQueryのフォーカス疑似セレクターを使用する

if ( $('input:focus').length > 0 ) {  return; }

またはあなたのコード例のために

if ( $('input:focus').length == 0) { ... }
于 2013-01-21T02:37:34.937 に答える
6

jQueryを使用してこのようにすることができ.is()ますdocument.activeElement

var targetInput = $('#myInput');

if(!targetInput.is(document.activeElement)) {
    alert('Typed while not focused on #myInput!');
}

JSFiddle

于 2013-01-21T02:40:57.450 に答える
3

jQueryを使用すると、現在フォーカスされている入力要素またはテキストエリア要素を検索するだけで済みます。

if ( $('input:focus, textarea:focus').length === 0 ) {
    // put some code here...
}
于 2013-01-21T02:38:40.860 に答える
1

フォーム入力にこれを使用することをお勧めします

if ( $(':input:focus').length ) { ... }
于 2015-08-14T13:44:25.993 に答える