我有一个颜色选择器,在拖动时,它会连续调用函数hello(e,2)
。我正在传递第二个变量2,因此第一个if statement
将不会执行。现在,在不断变化的时候,我不想要这个。
list[2] =list[1];
list[1]=list[0];
list[0]=e;
这应该只在最后一次执行。所以这些地方只移动一次。我希望你理解我的问题。这是我的功能。
function hello(e, a) {
if (a == 1 && e != list[0] && e != list[1]) {
list[2] = list[1];
list[1] = list[0];
list[0] = e;
var strContent = "";
for (var i = 0; i <= 2; i++) {
strContent += "<div class=\"pick\" style=\"background-color:" + list[i] + "\" onclick=\"hello(this.style.backgroundColor,0);\"></div>";
}
}
if (a == 2 && e != list[0] && e != list[1]) {
list[0] = e;
var strContent = "";
for (var i = 0; i <= 2; i++) {
strContent += "<div class=\"pick\" style=\"background-color:" + list[i] + "\" onclick=\"hello(this.style.backgroundColor,0);\"></div>";
}
}
$('#colorpick').html(strContent);
//clr = 'rgb('+r+','+g+','+b+')';
clr = e;
var rgb = clr.replace(/^(rgb|rgba)\(/, '').replace(/\)$/, '').replace(/\s/g, '').split(',');
myColor.r = parseInt(rgb[0]);
myColor.g = parseInt(rgb[1]);
myColor.b = parseInt(rgb[2]);
curColor = myColor;
document.getElementById('color-lib-1').style.display = "none";
document.getElementById('color-lib-2').style.display = "none";
document.getElementById('color-lib-3').style.display = "none";
document.getElementById('color-lib-4').style.display = "none";
}