Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   onkeydown постоянное нажатие клавиши (https://javascript.ru/forum/css-html/6697-onkeydown-postoyannoe-nazhatie-klavishi.html)

Jekel 16.12.2009 01:50

onkeydown постоянное нажатие клавиши
 
Как сделать так, чтобы функцию вызывало только когда нажата кнопка Enter ? Если кнопку отпустить - функция перестает вызыватся:blink: Пожалуйста помогите!

document.onkeydown = function(event){
events = event || window.event;
if (events.keyCode == 13) {
process();
}
}


Ну это не работает:( как везде пишут onkeydown - если кнопка зажата, onkeypress - нажать и отпустить onkeyup - отпустить..... но down не работает нормально, press вообще не пашет...up работает норм:blink:

PeaceCoder 16.12.2009 14:56

Цитата:

Сообщение от Jekel
пишут onkeydown - если кнопка зажата,

неправильно пишут.
правильно: если кнопка ушла в состояние нажато. и это происходит только 1 раз при нажатии. в то время когда кнопка еще нажата событий нет, что она досихпор нажата. это надо както фиксировать.

в твоем случае будет срабатывать только 1 раз при нажатии или отпускании в зависимости от функции.

что бы зациклить тебе надо вставить проверку на отпускание.
ent_press=0;

document.onkeydown = function(event){
  events = event || window.event;
  ent_press = events.keyCode == 13;
  }
document.onkeyup = function(){
  ent_press = 0;
  }

function process(){
  if (!ent_press) return;
  ....
  }
setInterval(process,100);

Riim 16.12.2009 14:59

PeaceCoder,
о том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

PeaceCoder 16.12.2009 15:08

Цитата:

Сообщение от Riim
о том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

оки доки учту и буду юзать ;) ща все переправлю под стандарт...

Jekel 16.12.2009 18:23

хм, действительно...большое спасибо Вам ребята:yes:


Часовой пояс GMT +3, время: 19:00.