我有一个项目列表,根据标准,它通过jQuery on document.ready获取一个类,触发
CSS3列.
如果列表以列显示,则其高度将更小.在课程更改后,有没有办法立即在jQuery中获得新的高度?
$items.each(function(i){ var theItem = this; console.log($(theItem).height()); //extended layout if ( theCriteria ) { $(theItem).addClass('extended'); console.log('after',$(theItem).height()); } }
解决方法
很多时候,在函数闭包完成之前不会发生dom操作.
一篇关于这个问题的好文章:http://www.quirksmode.org/blog/archives/2009/08/when_to_read_ou.html
代替:
console.log('after',$(theItem).height());
尝试
setTimeout(function(){ console.log('after',$(theItem).height()); },0);
将超时设置为0将使其尽快运行,同时仍然在当前正在运行的功能之后运行.
希望这是你的问题.祝好运.