在类更改后重新计算jQuery中的元素高度

前端之家收集整理的这篇文章主要介绍了在类更改后重新计算jQuery中的元素高度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个项目列表,根据标准,它通过jQuery on document.ready获取一个类,触发 CSS3列.

如果列表以列显示,则其高度将更小.在课程更改后,有没有办法立即在jQuery中获得新的高度?

  1. $items.each(function(i){
  2.  
  3. var theItem = this;
  4.  
  5. console.log($(theItem).height());
  6.  
  7. //extended layout
  8.  
  9. if ( theCriteria ) {
  10. $(theItem).addClass('extended');
  11. console.log('after',$(theItem).height()); }
  12. }

上面的代码返回两个调用的初始高度.我猜我需要触发别的东西.

解决方法

很多时候,在函数闭包完成之前不会发生dom操作.

一篇关于这个问题的好文章http://www.quirksmode.org/blog/archives/2009/08/when_to_read_ou.html

最好是执行setTimeout函数调用而不是直接日志.

代替:

  1. console.log('after',$(theItem).height());

尝试

  1. setTimeout(function(){ console.log('after',$(theItem).height()); },0);

将超时设置为0将使其尽快运行,同时仍然在当前正在运行的功能之后运行.

希望这是你的问题.祝好运.

猜你在找的jQuery相关文章