为什么这个jquery .each循环在中间停止我的函数调用?

时间:2014-03-26 15:10:18

标签: javascript jquery css

这是我正在处理的整个功能:

function collapse(){
var i = 0;
var currColors = [];
var currTitles = [];
// Get the color and the course id of all the current courses
$('.course').each(function (){
    if (rgb2hex($(this).css("background-color")) !== "#f9f9f9") {
        currColors.push(rgb2hex($(this).css("background-color")));
        currTitles.push($(this).children(".course-id").text());
        $(this).children(".course-delete").remove();
        $(this).children(".course-id").text("");
        $(this).css('background', "#f9f9f9");
    }
});
alert("made it");
// Redistribute the classes
// This is where reverse lookup will eventually happen  
i = 0;
$('div.course').each(function (){
    if (i>=currTitles.length){
        return false;
    }
    $(this).children(".course-id").text(currTitles[i]);
    $(this).css('background', currColors[i++]);
    $(this).append("<button id='temp' class='course-delete'>X</button>");
});
var i = currColors.length-1;
};

这是有问题的部分

$('.course').each(function (){
    if (rgb2hex($(this).css("background-color")) !== "#f9f9f9") {
        currColors.push(rgb2hex($(this).css("background-color")));
        currTitles.push($(this).children(".course-id").text());
        $(this).children(".course-delete").remove();
        $(this).children(".course-id").text("");
        $(this).css('background', "#f9f9f9");
    }
});

我有这个功能崩溃,它应该填写用户添加到屏幕的div列表中的空白点,如果他们删除了一个。这个功能在某一点上运行良好,但显然我已经把它搞砸了。

只有并且始终会有6个“.course”项目,因为这是列表的大小。当调用collapse()时,它会在n次后停止运行,其中n是当前正在使用的'.course'元素的数量。循环停在那里,整个功能停在那里。我试过把alert()语句放到各处,但仍然没有运气。如果有人发现了我所遗漏的东西,我会非常感激。

我现在已经找到了解决办法,但我想知道为什么我的整个功能都在中间崩溃。

0 个答案:

没有答案