Keyup не срабатывает, когда keydown открывает предупреждение

У меня есть два обработчика событий, один для keydown и один для keyup. Обработчик события keydown вызывает предупреждающее сообщение, но это предотвращает запуск события keyup.

Вы можете увидеть очень простой пример здесь:http://jsfiddle.net/boblauer/jaGwT/ Когда нажатие клавиши открывает предупреждение, оно не срабатывает, но когда предупреждение не открывается, оно срабатывает. Вот код из jsfiddle:

var i = 0;
window.addEventListener('keydown', function(e) {
    if (i++ % 2) alert('down');
    console.log('down');
});

window.addEventListener('keyup', function(e) {
    alert('up');
    console.log('up');
});

У меня есть библиотека, которая поддерживает прослушивание нескольких комбинаций клавиш (например, «d + f»), поэтому, когда клавиша нажата, мне нужно добавить ее в список клавиш, которые нажимаются в данный момент, и когда клавиша отпущена, Мне нужно удалить его из указанного списка. Проблема, с которой я сталкиваюсь, заключается в том, что если я хочу, чтобы при одновременном нажатии d + f отображалось предупреждение, мой код для удаления этих клавиш из списка «в данный момент нажата» никогда не срабатывает, потому что мой обработчик клавиш никогда не вызывается ,

Я не могу придумать хороший способ обойти эту проблему. Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос