将div id的jQuery脚本转换为循环div类

时间:2012-05-03 18:37:33

标签: jquery class loops click hover

下面的脚本将数组中的随机颜色应用于div id,并在悬停时更改颜色。我想修改它,以便它循环通过div类并将随机颜色应用于页面上的所有类。显然,click函数必须由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];
}

3 个答案:

答案 0 :(得分: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设置每个链接似乎是一个非常糟糕的主意,但由您决定。

答案 1 :(得分:0)

  

显然点击功能必须由id

完成

我不确定为什么会这样。

如果您愿意,可以通过类将点击函数应用于jQuery对象数组:

$('.myDivs').click(...)

答案 2 :(得分:-2)

你正在寻找像

这样的东西吗?
$('div').each(function(){
  //code
})