Подтвердить что ты не робот

Отключить специальное событие нажатия клавиши

У меня вопрос о событиях jQuery keypress. У меня есть следующий (рабочий) код:

$(document).bind('keypress', function(event) {

    if ($('#myDiv').is(':visible')) {

        if (event.which == 102) {
            // ...do something...
        }

    }
    else {
        if (event.which == 102) {
            return;
        }
    }

});

Я всегда "отвязываю" событие со связыванием другого "над". Я знаю, что я могу отвязать его с помощью .unbind('keypress'), но я получил больше событий нажатия клавиш, и когда я отвязал это с помощью $(document).unbind('keypress'), все мои события теряются.

Могу ли я сделать что-то вроде "keypress.102", чтобы только отменить этот конкретный "ключ" или как это можно сделать?!

4b9b3361

Ответ 1

Ты был на правильном пути. Это называется события с именами, т.е. Маркировка определенных привязок с помощью <event_name>.<namespace> (в вашем случае "keypress.102" ).

Например:

$(document).bind("keypress.key102", function(event) {
    if ($('#myDiv').is(':visible')) {

        if (event.which == 102) {
            // ...do something...
        }

    }
    else {
        if (event.which == 102) {
            return;
        }
    }
});

вы можете впоследствии отключить, не затрагивая другие связанные события нажатия клавиш:

$(document).unbind("keypress.key102");