我正在尝试使用jQuery选项卡到表中的下一个单元格失败,并认为这是由于我的选择器中的错误。使用开发人员工具,我看到我的单元格是一个跨度,位于<tr>
内的td .EditText中。这是我正在尝试使用的代码。
$(function() {
$('.EditText :text').live("keydown", function(e) {
if (e.which == 9) { //tab Key
$(this).blur();
$(this).parent('tr').next('td #EditText').find('span').click();
return false;
}
});
});
答案 0 :(得分:2)
我相信这一行:
$(this).parent('tr').next('td #EditText').find('span').click();
应该是:
$(this).next('td.EditText').find('span').focus();
答案 1 :(得分:1)
如果你能显示实际的标记,那将是非常有用,但我会对它进行一次尝试:
// Replace this
$(this).blur();
$(this).parent('tr').next('td #EditText').find('span').click();
// With this
$(this).blur().closest('td').next().find('td .EditText span').focus();
答案 2 :(得分:0)
我决定对此也不屑一顾。我为这个人创建了一个jsfiddle,所以请查看它,让我知道它是否正确。
以下是我目前的例子中的js:
$('table tr td.EditText span input').live('keydown', function(e) {
// get the code of the key that was pressed
var code = e.keyCode ? e.keyCode : e.which;
// varify that the tab key was pressed
if (code === 13) {
// get the next tr's input field, and set focus to it
$(this).parents('tr').next().find('td.EditText span input').focus();
// prevent any default actions
if (e.preventDefault) {
e.preventDefault();
}
return false;
}
});