Клавиши стрелки для выбора элементов в div
Имеется живой поиск ajax+php. Как сделать так, чтобы можно было выбирать элементы списка с помощью клавиш, стрелочек? Т.е. жмем стрелку вниз, выделяется верхний элемент и т.д.
![]() |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Example</title> <script type="text/javascript"> function onKeyDown(event) { //event=fixEvent(event); if(event.keyCode==38) { alert('Стрелочка вверх!'); } else if(event.keyCode==40) { alert('Стрелочка вниз!'); } } </script> </head> <body> <input type="text" name="search" onkeydown="onKeyDown(event)"> </body> </html> |
Your, с этим ясно, а вот как выделить элемент списка: верстка ul li
|
Цитата:
|
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Example</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <style type="text/css"> .ul{list-style-type:none;} .ul li{dislpay:block;} .active{background:#888888;} </style> </head> <body> <ul class="ul"> <li> Пункт меню </li> <li> Пункт меню </li> <li> Пункт меню </li> </ul> <input type="text" name="search" onkeydown="onKeyDown(event)" autocomplete="off"> <script type="text/javascript"> var arrayLi=[]; $('.ul li').each(function() { arrayLi.push($(this)); }); var i=0, number='', count='undefined'!==typeof arrayLi?(arrayLi.length-1):0; function onKeyDown(event) { //event=fixEvent(event); if(count!=0) { if(38==event.keyCode) { if(0<number) { arrayLi[number].removeClass('active'); --number; --i; arrayLi[number].addClass('active'); } } else if(40==event.keyCode) { if(i!=count) { if(arrayLi[i].hasClass('active') && i<count) { ++i; } for(var l in arrayLi) { if(number==l) { arrayLi[number].removeClass('active'); } if(l==i) { number=i; arrayLi[i].addClass('active'); } } } } } else { return; } } </script> </body> </html> |
Часовой пояс GMT +3, время: 19:50. |