2011-10-17 18 views
0

これはおそらく簡単な質問ですが、jQueryを初めて使用しているので、私はこのコードを見る人が必要です。ですから、基本的には、複数のアンカータグのホバー状態のCSSを変更したいのですが、次のコードを試しましたが、うまくいきませんでした。それのどこが悪いんだい?jQueryでは、各関数にホバー関数を使用できませんか?

(".p-container a").each(function() { 
    $(this).css({'text-shadow':'0 0 0.2px '+ colorArray[i]}); 
    $(this).hover(function() { 
      $(this).css({'text-shadow':'0 0 2px '+ colorArray[i]}); 
    },function() { 
      $(this).css({'text-shadow':'0 0 0.2px '+ colorArray[i]}); 
    }); 
    i++; 
}); 

コードは、ホバー機能を持たずに動作しますが、ホバー状態のCSSを同時に変更したいと考えています。誰かがそれをする方法を知っていますか?

おかげ KJ

+0

が欠けていると思う は私もどちらか動作しませんでした、特定のセレクタにホバー機能の下に「$(この)」を変更しようとしました。 –

+0

もちろん、あなたは 'hover'を使うことができますが、' i'(googleは 'javascript closure loop'などのためのスコープの問題があります。 '私は何のためですか?反復回数を数えるだけの場合は、 'each'コールバックに渡されたインデックスを使用して、これがあなたの問題を解決します。 –

+0

これはどこから来たのですか?あなたの例では定義されていません。 – Widor

答えて

0

あなたiは何ですか?それは.each()DOCのインデックスですか?

(".p-container a").each(function (i, value) { 
    $(this).css({'text-shadow':'0 0 0.2px '+ colorArray[i]}); 
    $(this).hover(function() { 
      $(this).css({'text-shadow':'0 0 2px '+ colorArray[i]}); 
    },function() { 
      $(this).css({'text-shadow':'0 0 0.2px '+ colorArray[i]}); 
    }); 
    i++; 
}); 
+0

申し訳ありませんが、ループの外側にあるiとcolorArrayの両方であり、私が言ったように、コードはホバー機能なしで動作するので、colorArrayもiも問題ではありません –

0

iの場合はcolorArrayとなります。 iはグローバル変数である可能性があります。私は問題が$

$(".p-container a").each(function() { 
関連する問題