Как получить нажатие клавиши над цифрами - PullRequest
0 голосов
/ 23 марта 2012

ВОПРОС: как получить звездочку над цифрами

Моя СКИДКА в настоящее время не определяет * над строкой чисел на клавиатуре - только* на цифровой клавиатуре ...

На моей клавиатуре это shift-3, поэтому keyCode 51 + shift.Как мне просто проверить на * независимо от того, что я нажал, чтобы получить его?

Ответы [ 2 ]

1 голос
/ 24 марта 2012

События keydown и keyup ненадежны для обнаружения определенных символов, поскольку свойство event.which этих событий , а не кодов символов.

Необходимо использовать событие keypress. Это событие может срабатывать несколько раз, пока нажата клавиша. Итак, установите флажок при нажатии нужной клавиши и снимите флажок на keyup.

Демо: http://jsfiddle.net/xHnTD/

function something_to_do() {
    // This function is fired when * is pressed.
    $('<div>Pressed *!</div>').appendTo('body')
}
$('body').keypress(function(e) {
    var $this = $(this);
    if (e.which === 42) { // '*'.charCodeAt(0) === 42
        if (!$this.data('rw_star_pressed')) {
            $this.data('rw_star_pressed', true);
            something_to_do();
        }
    }
}).keyup(function() {
    $(this).removeData('rw_star_pressed');
});
0 голосов
/ 23 марта 2012

Я не очень уверен насчет кодов клавиш, которые вы опубликовали.С этим кодом, когда я нажимаю *, я получаю 56

<script type="text/javascript">
    document.addEventListener('keydown', function( event ) { 
             console.log(event.keyCode); });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...