0

この問題に遭遇しました。スペースバーを使用して、ページ上の 1 つのメイン プレーヤーを再生/一時停止しています。いくつかのテストを行っているときに、検索またはコメントを入力してスペースバーを押すと、プレーヤーの再生と一時停止が繰り返され、迷惑になることがわかりました。再生/一時停止にスペースバーを使用しないよりも、入力がフォーカスされているかどうかを確認する方法を探していましたが、解決策が見つかりませんでした。

ロジックに関しては、次のようなことをする必要があります

if (unicode == 32  "SPACEBAR" && "No input is focused, so spacebar is not used for typing ") {

//Some stuff here

 }
4

3 に答える 3

2

これに使用document.activeElementして、タイプを確認できます。

例えば:

document.activeElement.nodeName === 'INPUT'

したがって、ifは次のようになります。

if( unicode == '32' && document.activeElement.nodeName !== 'INPUT' ) {
    // play/pause video
}
于 2013-06-09T13:40:06.660 に答える
0

イベント ターゲットプロパティを使用します。

$(document).on('keydown', function (e) {
       if(!$(e.target).is('input[type=text]') && unicode === 32) {
           //stuff here
       }
    });
于 2013-06-09T13:41:44.213 に答える
0

document.activeElement を確認してください

文書

于 2013-06-09T13:39:45.453 に答える