无法应用jquery过滤器

时间:2010-03-14 13:59:33

标签: jquery list

我使用此代码取消动画列表...

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

当我第二次进行更新时,它继续无限循环

我无法理解为什么

1 个答案:

答案 0 :(得分:1)

我不太确定你在这里要做什么。当你调用animateunanimate函数时,你的回调再次调用相同的函数,看起来应该创建一个无限循环。

另外,我注意到您的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}}