javascript код, который будет перехватывать нажатие клавиш клавиатуры 38 и 40!!!
Есть таблица выводимая php функцией-поиска. При нажатиях на клавиатуре клавиш "ВВЕРХ" и "ВНИЗ" курсор должен бегать по строкам таблицы меняя из класс. Курсор должен представлять собой полупрозрачную картинку или стрелочку в диве... класс при наведении курсора даю через onmouseover, а как написать ф-цию для клавиатуры не знаю. Помогите пожалуйста!:thanks:
|
Событие keydown (может быть keypress или keyup), свойство keyCode объекта события !!!
|
это я тоже понимаю, а вот как сделать так чтобы при нажатии оно перескакивало вверх или в них, как оно будет определять строку что сверху или та что снизу и менять их класс соответственно тащить курсор?
|
переставлять класс active срокам через http://api.jquery.com/next/ http://api.jquery.com/prev/ например
|
animhotep,
а в другую строку (tr) как на жиквери перебрасывать будешь? Nuitari, пригодиться: http://webew.ru/articles/598.webew |
Цитата:
$(".active").parent('tr').next().addClass(".active "); |
animhotep,
а сорри, все верно, я невнимательно прочитал :) , думал надо по ячейкам таблицы перемещаться. |
Вариант на jquery-ui selectable
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>selectable demo</title>
<script src="http://code.jquery.com/jquery-1.9.1.js">
</script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js">
</script>
<style>
#selectable .ui-selecting { background: #FECA40; }
#selectable .ui-selected { background: #F39814; color: white; }
#selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#selectable tr { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
#selectable tbody tr:hover { cursor: pointer; background-color: #FFB861;}
</style>
<script>
$(function() {
$( "#selectable tbody" ).selectable();
$(document).keyup(function(e) {
var lastSelected = $(".ui-selected");
lastSelected.removeClass("ui-selected");
var Selected;
if(e.which == 40) {
Selected = lastSelected.next().size()? lastSelected.next(): lastSelected.prevAll(":last");
Selected.addClass("ui-selected");
}
if(e.which == 38) {
Selected = lastSelected.prev().size() ? lastSelected.prev(): lastSelected.nextAll(":last");
Selected.addClass("ui-selected");
}
})
});
</script>
</head>
<body>
<table align="center" class="table1" id="selectable">
<thead>
<tr>
<th>col1</th>
<th>col2</th>
</tr>
</thead>
<tbody>
<tr>
<td>test</td>
<td>test</td>
</tr>
<tr>
<td>test</td>
<td>test</td>
</tr>
<tr>
<td>test</td>
<td>test</td>
</tr>
</tbody>
</table>
</body>
</html>
|
я вставил ваш код и пробыва тестить но при нажатии кнопок 38, 40 ничего не происходит подскажите в чем у меня может быть проблема?
|
рони, у deff'а научился называть переменные с большой буквы? Это же не конструктор.
|
| Часовой пояс GMT +3, время: 13:54. |