Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.04.2009, 12:21
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

Обработка событий клавиатуры
Есть на странице три дива.

1. Первый див.

2. Второй див и перемещающийся по нему третий див.

Нужно сделать так, чтобы по щелчку на первый див можно было с помощью клавиатуры управлять им.
По щелчку на второй див - можно было бы управлять третьим.
По щелчку на свободной от дивов области управлять окном браузера (по стандарту).
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2009, 12:22
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А проблема в чем?
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2009, 12:33
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

Прописываю в onkeypress второго дива функцию, по которой происходит сдвиг третьего дива внутри второго, но управление по прежнему остается окна браузера, а не необходимого дива.
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2009, 12:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Откуда у дива возьмется событие keypress?
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2009, 12:51
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

Ясно. С мышью тут конечно проще, а как поступить в таком случае с клавиатурой?
Ответить с цитированием
  #6 (permalink)  
Старый 18.04.2009, 12:58
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Кусок из Jquery:
// Add which for key events
if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
	event.which = event.charCode || event.keyCode;


str 2745

Дальше по таблице кодов.
Наиболее полную версию видел в MochiKit.
Ответить с цитированием
  #7 (permalink)  
Старый 18.04.2009, 15:16
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

Сообщение от Riim Посмотреть сообщение
Кусок из Jquery
Спасибо! А что-нибуь из прототайпа есть по этой теме?
Ответить с цитированием
  #8 (permalink)  
Старый 18.04.2009, 16:08
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

В PrototypeJs есть добавление/удаление обработчика, но обработки объекта события нет. Можно поискать плагин или дописать, выдрав нужное из Jquery и MochiKit.
upd:
>>> обработки объекта события нет
Хотя, нет, что-то вреде есть, но послабее чем в Jquery

Последний раз редактировалось Riim, 18.04.2009 в 16:18.
Ответить с цитированием
  #9 (permalink)  
Старый 18.04.2009, 22:13
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

Написал. Вроде все получилось =) Спасибо.
Правда проблема одна появилась...
Объявляю - document.onkeypress = keymove; (где keymove - функция обработки событий клавиатуры). Обработка событий клавиатуры работает, но вместе с ней работает и скроллбар вертикальный у документа. Как грамотнее сделать? Как отключить движение скроллбара с помощью клавиатуры?
Ответить с цитированием
  #10 (permalink)  
Старый 18.04.2009, 22:25
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Может в самый первый момент нажатия запомнить положение scroll-а и при отпускании клавиши установить его через window.scrollTo .
Только все равно дергаться будет.
Не понимаю, почему не работает window.onscroll = function() {retutn false};
Вроде вполне логичный вариант.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка событий на динамически созданных объектах Alexey_R jQuery 28 15.02.2017 15:28
Обработка навигации браузера smmurf Events/DOM/Window 29 01.06.2009 12:16
выпадающий текст и описание событий etna Общие вопросы Javascript 5 07.02.2009 12:53
обработка одновременно двух клавиш клавиатуры Destrifer Events/DOM/Window 8 20.12.2008 15:25
Модели событий partyzan Общие вопросы Javascript 2 30.04.2008 20:48