我使用tabup的keyup事件。但出于某种原因,代码只能运行其他密钥代码,如38,40,13。通过按Tab键,它只执行默认的Tab键操作并忽略代码。请帮忙。
dom.live('keyup', function (e) {
var newDom = $(this);
var suggestionpageCount = newDom.attr('data-counter');
if ((e.keyCode == 38) || (e.keyCode == 40)) {
..some code here
}
else if (e.keyCode == 13) {
..some code here
}
else if (e.keycode == 9) {
..some code here
}
我也尝试在dom.live上添加它(' keydown',功能(e) 但它不起作用..
所以我注意到当光标聚焦在文本框上时,keyup / keydown函数对tab键不起作用。你有什么想法?感谢
答案 0 :(得分:1)
你需要做的是听父亲的keydown和delegate事件向下,tab键的默认行为是改变元素焦点,这意味着keyup发生在页面的下一个元素上。
$('.myTextArea').parent().on('keydown', '.myTextArea', function(e) {
if (e.keyCode === 9) {
e.preventDefault();
console.log('Tab key pressed');
}
});
以上未经过测试,但应该可以使用。
另外,请尝试使用switch
代替大量if/else
语句。它们更易于阅读,并且如果是其他的