0

スライダー用の jQuery ミニ スクリプトを作成しました。Firefox、Chrome、IE9 では完全に動作しますが、IE7、IE8 にカーソルを合わせると。アラート エラー (Undefined current_hover_item) が表示されます。

$('.nav-item').hover(function(){
        var current_hover_item = $(this).children().attr('rel');
        $('.show-item').hide();
        $(current_hover_item).fadeIn(1000);
        $(this).animate({"width": "+=10px", opacity: 0.6}, 500, function(){
             $(this).animate({"width": "-=10px", opacity: 1}, 500);
        });
}, function(){
        $(current_hover_item).fadeOut(1000);
        return false;
});

(var)キーワードを削除しようとしましたが、ホバーするとすべてが表示されません。私を助けてください。ありがとう。

4

2 に答える 2

2

current_hover_itemは、最初の関数の定義がクロージャにあるため、2 番目の関数では未定義です。

current_hover_item両方の関数で宣言する必要があります。または、各関数で変数を 1 回しか使用しないため、次のように完全に削除します。

$('.nav-item').hover(function(){
        $('.show-item').hide();
        $($(this).children().attr('rel')).fadeIn(1000);
        $(this).animate({"width": "+=10px", opacity: 0.6}, 500, function(){
             $(this).animate({"width": "-=10px", opacity: 1}, 500);
        });
}, function(){
        $($(this).children().attr('rel')).fadeOut(1000);
        return false;
});

または、できればコードをリファクタリングしてください。

于 2012-07-04T19:58:20.740 に答える
0

私は今日早くこの問題を抱えていました。jquery関数(.ready()を含む)の外側で変数を宣言することで修正し、必要な場所(現在宣言している場所)に設定しました。

于 2012-07-04T19:59:16.030 に答える