只需获取循环的最后一个值并停止执行函数

时间:2016-05-12 11:24:46

标签: javascript jquery loops if-statement

我有一个颜色选择器,在拖动时,它会连续调用函数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";

}

0 个答案:

没有答案