Каковы преимущества и недостатки стиля «без очков» в функциональном программировании?

Сегодня я обнаружил, что событие нажатия клавиши не запускается при нажатии клавиши Enter, поэтому вы можете переключиться на keydown () или keyup ().

Мой тестовый скрипт:

        $('.module input').keydown(function (e) {
            var keyCode = e.which;
            console.log("keydown ("+keyCode+")")
            if (keyCode == 13) {
                console.log("enter");
                return false;
            }
        });
        $('.module input').keyup(function (e) {
            var keyCode = e.which;
            console.log("keyup ("+keyCode+")")
            if (keyCode == 13) {
                console.log("enter");
                return false;
            }
        });
        $('.module input').keypress(function (e) {
            var keyCode = e.which;
            console.log("keypress ("+keyCode+")");
            if (keyCode == 13) {
                console.log("Enter");
                return false;
            }
        });

Выход на консоли при вводе «A Enter B» на клавиатуре:

keydown (65)
keypress (97)
keyup (65)

keydown (13)
enter
keyup (13)
enter

keydown (66)
keypress (98)
keyup (66)

Вы видите, что во второй последовательности «keypress» отсутствует, но регистр нажатия клавиш и keyup код '13' как нажатый / отпущенный. Согласно документации jQuery по функции keypress () :

Note: as the keypress event isn't covered by any official specification, the actual behavior encountered when using it may differ across browsers, browser versions, and platforms.

Проверено на IE11 и FF61 на сервере 2012 R2

65
задан s952163 16 December 2016 в 03:03
поделиться