Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.10.2012, 20:33
Аспирант
Отправить личное сообщение для Rooner Посмотреть профиль Найти все сообщения от Rooner
 
Регистрация: 21.08.2011
Сообщений: 45

Клавиши стрелки для выбора элементов в div
Имеется живой поиск ajax+php. Как сделать так, чтобы можно было выбирать элементы списка с помощью клавиш, стрелочек? Т.е. жмем стрелку вниз, выделяется верхний элемент и т.д.
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2012, 08:17
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

<!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>
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2012, 12:03
Аспирант
Отправить личное сообщение для Rooner Посмотреть профиль Найти все сообщения от Rooner
 
Регистрация: 21.08.2011
Сообщений: 45

Your, с этим ясно, а вот как выделить элемент списка: верстка ul li
Ответить с цитированием
  #4 (permalink)  
Старый 25.10.2012, 12:13
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

Цитата:
Your, с этим ясно, а вот как выделить элемент списка: верстка ul li
С помощью getElementsByTagName собрать нужные элементы в массив, инкрементить/декрементить число и изменять стили соответствующего элемента.
Ответить с цитированием
  #5 (permalink)  
Старый 26.10.2012, 06:34
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

<!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>

Последний раз редактировалось Your, 28.10.2012 в 08:10.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт для динимического изменения div arsen Общие вопросы Javascript 3 30.09.2010 11:29
Некорректно работает функция для создания элементов exec Общие вопросы Javascript 4 13.07.2010 11:15
Событие change для всех элементов exvion jQuery 2 25.01.2010 18:18
Использование одной функции для элементов с разными ID Ferroks Общие вопросы Javascript 10 11.09.2009 08:51
Не работает AppendChild для div, причём только в IE _Kpot_ Internet Explorer 5 12.02.2009 10:55