下面的脚本将数组中的随机颜色应用于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];
}
答案 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
})