Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Запуск функции по нажатию клавиши


Автор: vicq 7.6.2008, 18:59
нужно запустить процедуру в зависимости от нажатой клавиши.  допустим по нажатию пробела
конкретнее я не знаю как присвоить переменной код нажатой клавиши, а сначала перехватить нажатие
подскажите пожалуйста. заранее спасибо!

Автор: Ghirik 7.6.2008, 19:48
Вот, побалуйтесь...  smile 

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Title block</title>
<script type="text/javascript">
<!--
function keydown(obj,e){
    document.getElementById('p').innerHTML += e.keyCode + '<br>';
    if (e.keyCode == 32) {
        obj.value = 'Пробел, однако!'
        document.getElementById('p').innerHTML = '';
    }
}
//-->
</script>
</head>
<body>
<p><textarea rows="6" name="S1" cols="42" onkeydown="keydown(this,event)"></textarea></p>
<p id="p"></p>
</body>
</html>



Автор: vicq 12.6.2008, 15:52
не получается( нужно по нажатию клавиш вправо или влево перемещать div соответственно вправо или влево. вот что написал
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="">
<script language="javascript">
<!--
var px, coef_px, step=3;

function init()
{
    plato.style.left=parseInt(document.body.offsetWidth)/2-75;
    plato.style.top=500;
}

function keydown(e)
{
    if (e.keyCode == 37)
    {
      coef_px=-1;
      plato_move(coef_px)
    }
    if ((e.keyCode == 39) && (parseInt(plato.style.left) < parseInt(document.body.offsetWidth)))
    {
      coef_px=1;
      plato_move(coef_px)
    }
}

function plato_move(coef_px)
{
    px=parseInt(plato.style.left);
    px=px+coef_px*step;
    plato.style.left=px;
}
-->
</script>
</head>

<body onload="init()" onkeydown="keydown(event)">
<div id="plato" style="position:absolute; width:150px; height:15px; background-color:#006600;"> </div>
</body>
</html>


где ошибка, подскажите? никакой реакции на нажатие клавиш

Автор: Ghirik 12.6.2008, 22:22
Т.е.,. Вы не хотите изучать JavaScript? 

Автор: krundetz 12.6.2008, 22:56
Ghirik ему нужен готовый код.
vicq предлагайте разумную оплату за работу Ghirik возможно он и возьмется(выделит время) сделать вам то что нужно. Могу его рекомендовать как компетентного специалиста.

Автор: IDVsbruck 13.6.2008, 00:27
Я плачу ... vicq, тебе еще учиться, учиться и учиться: нарушены все правила программирования в javascript, в объектной модели DOM, в событийной модели, совершенно не кроссбраузерно, да к тому же полное незнание предмета и грубые ошибки. Кроме как книжки-самоучители, что-либо предложить сложно.

Автор: krundetz 13.6.2008, 02:14
Цитата(IDVsbruck)

Кроме как книжки-самоучители, что-либо предложить сложно. 

ну как вариант обратиться к профисионалам

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)