代码之家  ›  专栏  ›  技术社区  ›  Michael Lumbroso

jquery在隐藏列的行上向上滑动

  •  1
  • Michael Lumbroso  · 技术社区  · 16 年前

    我有一个表格,当我删除一行时,它会以幻灯片形式显示动画。

    $(id).find("td div").slideUp
    

    我用这个技巧在一行上使用了幻灯片: animating-table-rows-with-jquery

    当显示所有列时没有问题,但是当我有隐藏的列时,它只删除行而不显示动画。我想这是一个正常的行为从幻灯片,但有一个技巧,使它与动画工作?我在考虑测试TD是否隐藏,什么都不做,否则就滑动,但我不认为这会有什么效果。

    1 回复  |  直到 9 年前
        1
  •  0
  •   balpha    16 年前

    原因是 slideUp 之后不调用 全部的 动画已完成,但在 每个 动画完成。自从 div 隐藏列中的不可见,不需要发生向上滑动动画,即立即完成,因此立即调用回调。

    但是,回调会删除 整排 .

    有几种方法可以解决这个问题。你自己的想法 div 这是一种可行的方法。

    另一种方法是设置一个超时来删除行,而不是在回调中执行该操作。

    第三种方法是签入回调(如果有) div 只在不存在行的情况下才删除行,例如

    $(id).find("td div").slideUp(function() {
        $(this).remove();                     // remove the div itself
        if ($(id).find("td div").length == 0) // if none are left
            $(id).remove();                   // then remove the row
    });