我使用此代码取消动画列表...
function unanimate_li() {
$li.filter(':last')
.animate({
height: 'hide',
opacity: 'hide'
}, 1000, function() {
unanimate_li();
});
$li = $li.not(':last');
}
我已使用此代码
设置了li$li = $("ol#update > li");
$li = $li.filter(':gt(4)').filter(':lt('+ size + ')');
现在,当我尝试这样做时,我无法获得第5个li(基于零的第4个)删除 它删除了第六个li 示例here
当我第二次进行更新时,它继续无限循环
我无法理解为什么
答案 0 :(得分:1)
我不太确定你在这里要做什么。当你调用animate
或unanimate
函数时,你的回调再次调用相同的函数,看起来应该创建一个无限循环。
另外,我注意到您的unanimate
函数使用了在脚本中多次更新的$li
。这让我对它最终包含的内容感到非常困惑。所以我修改了函数以获取当前的li
标签并从那里开始工作。
我注意到的另一件事是你正在使用:last
找到我认为也抓住隐藏的li
的最后li
,所以要么删除隐藏的:visible
,要么使用function animate_li(){
$("ol#update > li:first")
.animate({
height: 'show',
opacity: 'show'
}, 5
);
}
function unanimate_li(){
$("ol#update > li:visible:last")
.animate({
height: 'hide',
opacity: 'hide'
}, 1000, function(){
// $(this).remove(); // uncomment this line if you want to remove the li
});
}
尝试以下功能:
{{1}}