Использование jQuery для перехода к следующей ячейке таблицы - PullRequest
1 голос
/ 21 ноября 2011

Я пытаюсь использовать jQuery для перехода к следующей ячейке таблицы безуспешно и считаю, что это связано с ошибками в моих селекторах.Используя инструменты разработчика, я вижу, что мои ячейки - это span, в пределах td .EditText, в пределах <tr>.Вот код, который я пытаюсь использовать.

$(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;
        }
    });
});

Ответы [ 3 ]

2 голосов
/ 21 ноября 2011

Я считаю, что строка:

$(this).parent('tr').next('td #EditText').find('span').click();

должна быть:

$(this).next('td.EditText').find('span').focus();
1 голос
/ 21 ноября 2011

Было бы чрезвычайно полезно, если бы вы могли показать фактическую разметку, но я попробую:

// 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();
0 голосов
/ 21 ноября 2011

Я тоже решил заняться этим.Я создал 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;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...