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