Javascript 分区';在jquery追加后未更新的高度

Javascript 分区';在jquery追加后未更新的高度,javascript,jquery,html,css,Javascript,Jquery,Html,Css,更新:下面是一些代码: 我试图根据数据cardname属性的int值对元素进行排序。这很好,但是我尝试在一系列的3列中按顺序添加卡片。 这3列由CSS的网格模板区域组成 除此之外,在第四张卡片之后高度没有更新,然后其余的卡片只被附加到第一列,因为这是我告诉它的,如果所有的高度都相同的话 在for循环的下一次迭代之前,似乎存在竞争条件或高度更新时间过长。我尝试了jQuery的.each()和一个普通for循环 我四处打听,在网上搜索,结果什么也没找到,但让我列出我发现的: Jquery正在缓存变

更新:下面是一些代码:

我试图根据
数据cardname
属性的int值对元素进行排序。这很好,但是我尝试在一系列的3列中按顺序添加卡片。 这3列由CSS的网格模板区域组成

除此之外,在第四张卡片之后高度没有更新,然后其余的卡片只被附加到第一列,因为这是我告诉它的,如果所有的高度都相同的话

在for循环的下一次迭代之前,似乎存在竞争条件或高度更新时间过长。我尝试了jQuery的
.each()
和一个普通for循环

我四处打听,在网上搜索,结果什么也没找到,但让我列出我发现的:

  • Jquery正在缓存变量选择器,我使用它来提高效率,而不是每次调用它,而是将它们更改为
    $('#col1')
    ,而不是
    $(col1)
  • 将追加放在一个
    setTimeout(function(){},0)中但这会延迟太多的附加,如果实际附加了,则只会延迟后面的一个附加
  • 删除css动画延迟和css动画,这没有任何作用
  • 溢出:隐藏在列上,以便正确计算高度,但这不起任何作用
由于某些原因,计算的高度与我正在记录的上一次调用
.Height()
不同

我已尝试使控制台输出有用,其内容如下:

  • l(总卡数)
  • ccc(保留在
    .cards
    中的卡片数量,它们在 列
  • 独立号码是我们使用的卡,从1开始
  • c1或c2或c2 h before是附加前的高度
  • 与c1或c2或c3 h之前在同一行上的卡数是该列中的卡数
  • c1或c2或c3 h之后是追加后的
    .height()
我已经尽可能多地做日志记录来提供帮助。如您所见,第四张卡应该进入
#col1
,但高度不更新(保持在464),或者第五张卡也会更新,以此类推