这是我正在处理的整个功能:
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()语句放到各处,但仍然没有运气。如果有人发现了我所遗漏的东西,我会非常感激。
我现在已经找到了解决办法,但我想知道为什么我的整个功能都在中间崩溃。