jQuery erreur: Uncaught TypeError: Impossible d'utiliser un 'dans' l'opérateur de recherche pour 'backgroundColor' non défini

$('.metro_menu_button').data('oldColor', $(this).css('background-color'));

$('.metro_menu_button').hover(function () {
    $(this).stop().animate({
        backgroundColor: '#303030'
    }, 300);

}, function () {

    $(this).stop().animate({
        backgroundColor: $(this).data('oldColor')
    }, 300);

});

Comme pour le titre, le jQuery, le code ci-dessus (qui est effectuée sur les DOM ready) est de retour cette erreur

Uncaught TypeError: Impossible d'utiliser un 'dans' l'opérateur à la recherche pour
'backgroundColor' non défini

Pourquoi est-ce? Ce que je fais mal?


Je suis en train de faire un bouton qui, sur le vol stationnaire, les changements de couleur et, lorsque la souris quitte, revenir à sa couleur d'origine. Je ne peux pas coder en dur les valeurs: j'ai besoin de cela pour être flexible et n'oubliez pas, par elle-même la vieille couleur d'arrière-plan. Le code suivant fonctionne très bien mais, si je bouge la souris et trop vite, il "oublie" la couleur d'origine.

$('.metro_menu_button').hover(function () {

    $(this).data('oldColor', $(this).css('background-color'));

    $(this).stop().animate({
        backgroundColor: '#303030'
    }, 300);

}, function () {

    $(this).stop().animate({
        backgroundColor: $(this).data('oldColor')
    }, 300);

});

J'ai besoin d'enregistrer oldColor sur DOMReady, pas à chaque fois la souris. En d'autres termes, j'ai besoin d'utiliser le premier code, mais c'est jeter de l'erreur. Que puis-je faire?

OriginalL'auteur Saturnix | 2013-07-04