A definição da cor de plano de fundo com JavaScript interrompe o comportamento de foco do CSS

Estou tentando criar um menu em que o elemento atualmente selecionado (clicado) tem uma cor de plano de fundo diferente dos outros elementos (estou tentando conseguir isso usando JavaScript). Eu também uso o CSS:hover pseudoclasse para destacar o elemento pairado, destacando-o. No entanto, encontrei um problema estranho: quando defino a cor de segundo plano de qualquer elemento com JavaScript, seu comportamento de foco instantâneo CSS não funciona mais. Ou seja, não consigo destacar o elemento passando o mouse mais. Eu verifiquei isso no Firefox e no Chromium. Este é o caso do jQuery e do JavaScript simples.

O código está abaixo. Eu simplifiquei muito para diminuir o problema. Primeiro, tente passar o mouse sobre qualquer um dos itens de menu, clique no link "Definir cor do plano de fundo" e passe o mouse sobre um dos elementos do menu novamente. O que eu espero é que o elemento fique vermelho (# f00) ao passar o mouse, independentemente de o botão "Definir cor de fundo" ter sido clicado ou não.Para links jsfiddle, vá para o final.

JavaScript baunilha:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <style>
            p#links a {
                display: inline-block;
                width: 80px;
                height: 22px;
                line-height: 22px;
                background-color: #00f;
                color: #fff;
                text-decoration: none;
                text-align: center;
                font-family: sans-serif;
            }

            p#links a:hover {
                background-color: #f00;
            }       
        </style>
        <title>Background color</title> 
    </head>
    <body>
        <p id="links">
            <a href="#">Link 1</a>
            <a href="#">Link 2</a>
            <a href="#">Link 3</a>
            <a href="#">Link 4</a>
        </p>
        <a href="#" id="setbgcolor">Set background color</a>

        <script>
            document.getElementById('setbgcolor').onclick = function() {
                var p = document.getElementById('links');
                var elements = p.getElementsByTagName('a');
                for (var i = 0; i < elements.length; i++)
                    elements[i].style.backgroundColor = '#ff0';
            };
        </script>
    </body>
</html>

jQuery:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <script src="jquery-1.11.0.js"></script>
        <style>
            p#links a {
                display: inline-block;
                width: 80px;
                height: 22px;
                line-height: 22px;
                background-color: #00f;
                color: #fff;
                text-decoration: none;
                text-align: center;
                font-family: sans-serif;
            }

            p#links a:hover {
                background-color: #f00;
            }       
        </style>
        <title>Background color</title> 
    </head>
    <body>
        <p id="links">
            <a href="#">Link 1</a>
            <a href="#">Link 2</a>
            <a href="#">Link 3</a>
            <a href="#">Link 4</a>
        </p>
        <a href="#" id="setbgcolor">Set background color</a>

        <script>
            $('a#setbgcolor').click(function() {
                $('p#links a').css('background-color', '#ff0');
            });
        </script>
    </body>
</html>

E aqui estão os links do jsfiddle.net com a finalidade de conveniência:
JavaScript puro:http://jsfiddle.net/5yQFM/1/
jQuery:http://jsfiddle.net/5yQFM/

questionAnswers(4)

yourAnswerToTheQuestion