2

我需要将 Tab 键绑定到特定功能。即,每当我按 Tab 键时,它都应该执行特定的功能。

我所做的是

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

这工作正常,功能没有问题。但是,这会影响页面性能,因为每次按键都会调用此函数。我正在考虑找到任何方法来绑定仅单击 Tab 键,以便此代码仅应在按下 Tab 键时运行,并且应忽略所有其他按键。

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 回答