Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   проверка на повторное нажатие (https://javascript.ru/forum/jquery/66213-proverka-na-povtornoe-nazhatie.html)

Freekazoid 01.12.2016 15:41

проверка на повторное нажатие
 
Доброго времени суток.
Не могу сделать проверку на повторное нажатие клавиши.

есть функция в которой отслеживается нажатие клавиш
document.onkeydown = function (e) {
if (e.code == 'ArrowUp') player.moveup();
else if (e.code == 'ArrowDown') player.movedown();
else if (e.code == 'ArrowLeft') player.moveleft();
else if (e.code == 'ArrowRight') player.moveright();
else if (e.keyCode == 32) player.pause();
else return;
};

есть обработка клавиш.
т.е. обработка стрелок но загвоздка в обработке пробела.
не могу придумать как сделать что бы 1 нажатие ставило на паузу 2 снимало с паузы.
Спасибо.

ksa 01.12.2016 15:54

Цитата:

Сообщение от Freekazoid
не могу придумать как сделать что бы 1 нажатие ставило на паузу 2 снимало с паузы

Записывай это "состояние" куда-либо, потом считывай... ;)

ksa 01.12.2016 15:57

Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
var space=false;
document.onkeydown = function (e) {
	if (e.keyCode == 32){
		alert(space? 'start': 'stop');
		space=!space;
	};
};
</script>
</head>
<body>
</body>
</html>

Freekazoid 01.12.2016 16:09

Цитата:

Сообщение от ksa (Сообщение 436757)
Записывай это "состояние" куда-либо, потом считывай... ;)

Спасибо за совет.
а можно без jqwery?

Dilettante_Pro 01.12.2016 16:20

ksa
Покажите вариант без jquery и angular:yes: Слабо?

Freekazoid 01.12.2016 16:41

[quote=ksa;436758]Как вариант...

[HTML run]
<script type='text/javascript'>
var space=false;
document.onkeydown = function (e) {
if (e.keyCode == 32){
alert(space? 'start': 'stop');
space=!space;
};
};
</script>

Большое спасибо за пример и дельный совет.

Rise 01.12.2016 21:36

Freekazoid, (e.code == 'Space')

ksa 02.12.2016 08:24

Цитата:

Сообщение от Freekazoid
а можно без jqwery?

А где там jqwery? :blink:
Цитата:

Сообщение от Dilettante_Pro
Покажите вариант без jquery и angular

Ну ты, барин, задачки ставишь... (с) к/ф Формула любви


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