5
$('.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);

});

タイトルに関しては、上記の jQuery コード (DOM 対応で実行される) がこのエラーを返しています。

Uncaught TypeError: 'in' 演算子を使用して未定義の 'backgroundColor' を検索することはできません

どうしてこれなの?私は何を間違っていますか?


ホバーすると色が変わり、マウスが離れると元の色に戻るボタンを作成しようとしています。値をハードコードすることはできません。これには柔軟性が必要で、古い背景色を覚えておく必要があります。次のコードは問題なく動作しますが、マウスをすばやく出し入れすると、元の色が「忘れられ」ます。

$('.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);

});

oldColorマウスが入るたびにではなく、DOMReadyを保存する必要があります。つまり、最初のコードを使用する必要がありますが、これはエラーをスローしています。私に何ができる?

4

1 に答える 1