我有一个常规排序,可以将项目从“从高到低”追加:
library.sort(function(a, b) { return a.year - b.year; });
upperlimit = library.length-1
for (i=upperlimit; i<library.length; i=i-1){
//source.sort(function(a, b) { return a.year - b.year; });
item = "<div class='item' style='background-image:url(" + library[i].source + ");' ><h2>" + library[i].title + "</h2></div>"
$("#list").append(item);
}
但实际上,从“从高到低”附加,它会以某种方式禁用其他功能:
$(".item h2").css({"bottom":"-135px"});
$(".item").hover(
function(){
$(this).find("h2").animate({"bottom":"-85px"},300)
},
function(){
$(this).find("h2").animate({"bottom":"-135px"},150)
}
);
然而,当它被写为从“低到高”追加时,
for(i=0; i<library.length; i=i+1)
动画效果很好。
在Firebug上,当写入“从高到低”时,它会显示错误“TypeError:library [i]未定义”但是“从低到高”没有错误。
对于两者而言,一切都正确显示(图像和隐藏的h2),但它只是在“从高到低”不起作用的动画。
答案 0 :(得分:0)
for (i=upperlimit; i<library.length; i=i-1){
您的高到低循环条件错误。这是一个无限循环,因为i
开始library.length-1
,每回合变小,并且将永远小于library.length
。你想要的是
for (i=library.length-1; i>=0; i=i-1){
当索引转到-1
时,由于访问undefined
上的属性而导致当前代码抛出异常,并且暂停执行,因此未附加事件处理程序。