keydown + zdarzenia keyup dla określonych kluczy

Próbuję zmienić kolor tła po przytrzymaniu pewnych klawiszy. Na przykład, gdy klawisz „r” jest przytrzymywany, tło powinno być czerwone. Gdy klawisz „r” nie jest już naciśnięty, tło powinno być domyślnie białe.

$(document).ready(function () {
    $('body').keydown(function(e){
        if(e.keyCode == 114){
            $(this).css({'background':'red'});  
        }
        if(e.keyCode == 121){
            $(this).css({'background':'yellow'});
        }
    });
    $('body').keypress(function(e){
        if(e.keyCode == 114){
            $(this).css({'background':'red'});  
        }
        if(e.keyCode == 121){
            $(this).css({'background':'yellow'});
        }
    });
    $('body').keyup(function(e){
        if(e.keyCode == 114){
            $(this).css({'background':'white'});
        }
        if(e.keyCode == 121){
            $(this).css({'background':'white'});
        }
    });

});

Problem, który mam, polega na tym, że keyup nie działa specjalnie dla każdego indywidualnego klucza.

    $('body').keyup(function(e){
        $(this).css({'background':'white'});
    });

Wiem, że jeśli całkowicie usunę warunkowe if z keyupu, będzie on zachowywał się tak, jak powiedziałem, że chcę go - ale chcę być w stanie robić różne rzeczy później przy użyciu keyupu z określonymi kluczami. Na przykład po zwolnieniu klawisza „b” może na ekranie pojawi się coś w stylu „Właśnie puściłeś klawisz b!” Jak mogę śledzić zdarzenia keydown i keyup dla określonych kluczy i sprawiać, że różne rzeczy dzieją się dla każdego? Wiem też, że to nie jest zbyt zorganizowane (jestem całkiem nowy w tej kwestii), więc jeśli jest zupełnie inny i lepszy sposób na zrobienie tego ...

questionAnswers(2)

yourAnswerToTheQuestion