2

タブキーを特定の機能にバインドする必要があります。つまり、タブキーを押すたびに、特定の機能を実行する必要があります。

私がやったことは

$('body').on('keydown', '.myClass :visible:input:enabled:first', function (e) {
    if ((e.which == 9) || (e.keyCode == 9)) {
        $('.myClass :visible:input:enabled:first').focus();
    }
});

これは機能に問題なく正常に動作しています。ただし、キーを押すたびにこの関数が呼び出されるため、ページのパフォーマンスが低下します。タブキーのみのクリックをバインドする方法を見つけることを考えていたので、このコードはタブキーが押されたときにのみ実行され、他のすべてのキー押下を無視する必要があります。

4

1 に答える 1

1

キーが押されたことを検出するまで、どのキーが押されたかをどのように検出できますか? :)

最適化するためにできることは、次のようなものです-

var myNameSpace = function(){

this.selector = '.myClass :visible:input:enabled:first';

this.myElement = $(selector);

this._body = $('body');
var _self= this;

this._body.on('keydown',_self.selector,function(e){
     if ((e.which == 9) || (e.keyCode == 9)) {
        _self.myElement.focus();
     }
   });
};

一般的な考え方は、アクセスするノードを「キャッシュ」することです。選択するだけで DOM を何度もトラバースする必要はありません。

于 2013-08-26T05:00:14.080 に答える