0

以下のスクリプトは、配列からdiv idにランダムな色を適用し、ホバーすると色を変更します。divクラスをループし、ページ上のすべてのクラスにランダムな色を適用するように修正したいと思います。明らかに、クリック関数はidで実行する必要がありますが、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];
}
4

3 に答える 3

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を使用して各リンクを設定することは、本当に悪い考えのように思えますが、あなた次第です。

于 2012-05-03T18:57:20.540 に答える
0

明らかに、クリック機能はidによって実行される必要があります

なぜそうなるのかわかりません。

必要に応じて、クラスを介してオブジェクトのjQuery配列にクリック関数を適用できます。

$('.myDivs').click(...)
于 2012-05-03T18:41:44.253 に答える
-2

あなたは次のようなものを探していますか

$('div').each(function(){
  //code
})
于 2012-05-03T18:57:09.990 に答える