使用jquery使用某些功能单击tab键

时间:2013-08-26 04:49:52

标签: jquery

我需要将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键被击中时运行,并且应该忽略所有其他键按下。

1 个答案:

答案 0 :(得分: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,只需选择。