2012-05-03 11 views
0

以下のスクリプトは、配列からランダムな色をdiv idに適用し、ホバー上の色を変更します。 divクラスをループし、ページ上のすべてのクラスにランダムな色を適用するように修正したいと思います。明らかにクリック関数はIDで行う必要がありますが、divクラスをループする方法があり、そのすべてがホバーで変化するランダムな色を持つことが想像されます。div id用のjQueryスクリプトをループdivクラスに変換する

誰か助けてもらえますか?

おかげ

ニック

$(document).ready(function() { 
    var test = $("#example").text().split(''); 

    var normal = generateColors(test); 
    var hover = generateColors(test); 
    $("#example").html(normal); 

    $("#example").hover( 
     function(event) { $("#example").html(hover) }, 
     function(event) { $("#example").html(normal) }); 

    $("#example").click(function() { 
    location.href = "http://www.google.co.uk"; 
    }); 

}); 

function generateColors(characters) { 
    var result = ""; 
    var i = 0; 
    for(i=0; i < characters.length; i++) { 
     result += "<span style='color:"+getColor()+"'>"+characters[i]+"</span>"; 
    } 

    return result; 
}   

function getColor() { 
    var colList = ['#7EA404', '#14AFB0','#B05718', '#B0A914', '#B01617','#902BB0', '#B003A2', '#4A429C','#33821E', '#226795', '#D0B600','#886833']; 

    var i = Math.floor((Math.random()*colList.length)); 
    return colList[i]; 
} 
+0

http://api.jquery.com/jQuery.each/ –

答えて

1

のようなものを探している、とさまざまな要素にそれらを格納することができます:

$(".example").each(function() { 
    var text = $(this).text().split(''), 
     normal = generateColors(text), 
     hover = generateColors(text); 

    $(this).html(normal).data('hover', hover).data('normal', normal); 
}); 

$(".example").hover( 
    function() { 
     $(this).html($(this).data('hover')); 
    }, 
    function() { 
     $(this).html($(this).data('normal')); 
}); 

クリック時に各リンクをlocation.hrefに設定すると、次のようになります。li本当に悪い考えではなく、あなた次第です。

+0

ありがとう、それは私が探していたものです。 jQueryとのリンクを設定していたのは、div内のhrefが機能していなかったからです。私は今、クラス "example"をリンクに追加するとそれが動作することを認識しています。ありがとう! – Nick

0

は明らかクリック機能は、私はそれは次のようになり、なぜわからないのid

によって行わなければなりません。

あなたがしたい場合は、クラスを経由して、オブジェクトのjQueryの配列にクリック機能を適用することができます。

$('.myDivs').click(...) 
+0

各部門のURLが異なる場合は、 – Nick

+0

jQueryを使用して個々のdivにURLを割り当てていますか?私はデータの属性にURLを格納することをお勧めしますが、私はあなたが何を目標にしているかは完全にはわかりません。 –

+0

これは、上記のとおり、単一のDIV IDを使用していた方法です。私は単にページ上のいくつかのDIV /リンクへの色効果に適用することを検討しています。ランダム化された色効果は同じですが、それぞれ異なるページにリンクします。 – Nick

-2

あなたは色を適用するには

$('div').each(function(){ 
    //code 
}) 
+0

質の低いものではありません。 (あまりにも一般的) – sg3s

関連する問題