我有一个有4种颜色的数组。
EX:
var c1 = getColor();
var c2 = getColor();
var c3 = getColor();
var c4 = getColor();
function geraColor()
{
var colors = ['#3498db', '#8e44ad', '#e67e22', '#1abc9c'];
//Return each value only once
}
我有一份教师名单,每位教师都有一个符合其学科的子列表 像这样:Professor and Disciplines
每次我点击教授时,每次点击教授的名字,我都会在我的日历中添加这些学科(Alreay Done)。
我需要帮助的是:我需要为每位教授单击/展开生成一种独特的颜色(随机或不随机)。
Obs:我有4位教授的限制,所以我只需要生成4种颜色 Obs2:每次我再次点击一位教授,关闭他的学科。我需要再次使用这种颜色。
答案 0 :(得分:1)
AFA我理解你的问题,也许这就是你想要实现的目标:
var colors = ["red", "green", "yellow", "orange", "blue", "pink"];
var defaultColor = "black";
function getRndColor() {
var size = colors.length;
var rnd = Math.floor(Math.random() * size);
return colors.splice(rnd, 1)[0];
}
function getColor(elem) {
var color = defaultColor;
if (elem.checked) {
color = getRndColor();
} else {
colors.push(elem.parentElement.style.color);
}
elem.parentElement.style.color = color;
console.log(colors);
}
<span><input type="checkbox" onclick="getColor(this)"/>Get Random Color</span>
<span><input type="checkbox" onclick="getColor(this)"/>Get Random Color</span>
<br/>
<span><input type="checkbox" onclick="getColor(this)"/>Get Random Color</span>
<span><input type="checkbox" onclick="getColor(this)"/>Get Random Color</span>
<br/>
答案 1 :(得分:0)
只是管理一个记住教授颜色的词典:
var profColors = {};
function getColor(profName){ //profId would be better
if (!profColors[profName])
profColors[profName] = getRandomColor(); // or nor random...
return profColors[profName];
}
但是,不确定我明白你想要实现的目标......