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 回答