2010-11-29 3 views
0

У меня есть таблица, как показано ниже. Когда я нажимаю на ячейку таблицы (только ячейки с элементом div), она превращается в текстовое поле для редактирования (это я делаю еще один JQuery-плагин). Я пытаюсь добиться этого с помощью клавиши табуляции, то есть когда я выхожу из одной ячейки, я хочу перейти в следующую ячейку.Как перемещаться по ячейкам таблицы с помощью клавиши вкладок с помощью JQuery?

<table id="mytable"> 
    <tr> 
      <td><span><div>60</div></span></td> 
      <td><span>$10000</span></td> 
      <td><span><div>100%</div></span></td> 
    </tr> 
</table> 

Вот мой код JQuery. Этот код работает неправильно, то есть когда я выхожу из первой ячейки, я могу видеть курсор в следующей ячейке, но он немедленно уходит. Что-то не так в этом коде?

$("#mytable tr td div").bind('keydown', function(event) { 
    if(event.keyCode == 9){ //for tab key 
    var currentDiv = event.target; 
    $(currentDiv).parents("td").next("td").find("div").click(); 
}}); 

ответ

6

Добавление return false; может помочь:

$("#mytable tr td div").bind('keydown', function(event) { 
    if(event.keyCode == 9){ //for tab key 
    var currentDiv = event.target; 
    $(currentDiv).parents("td").next("td").find("div").click(); 
    return false; // <== here 
    } 
}); 

Добавление его там означает, что если вы обработки KeyDown, вы сообщаете браузеру, чтобы остановить событие от бурлит и прекратить обработку по умолчанию события, которые могут мешать тому, что вы пытаетесь сделать.

+0

Спасибо, что работает! – jgg 2010-11-30 19:44:12

Смежные вопросы