我有一个菜单,其中每个项目都有一个通过 ajax 更新的内容(放在“内容”div 中)。
<ul id="menu">
<li class="gr" on><a href="#">Home</a></li>
<li class="yel"><a href="#">Products</a></li>
<li class="bl"><a href="#">Contact</a></li>
</ul>
<div class="container">
<div id="content">
</div>
</div>
在$.ajax
success()
函数中,我将 ajax 接收到的数据放在“内容”div 中,我想用 animate() 调整 div 高度。这里的步骤:
- 获取旧的“内容”高度
- 用 ajax 接收到的数据更新“内容”div
- 迈上新高度
- 使用高度差制作动画。
所以我写道:
success : function (data) {
var contHeight = $("#content").height(); //older "content" height
$('#content').html(data); //update "content"
var diffHeight = $("#content").height() - contHeight; //difference from new and old height
$('#content').animate({height: '+=' + diffHeight + 'px'},500);
}
我尝试了我的代码(使用一些alert()
函数进行调试),我注意到:如果我使用animate()
,contHeight
它等于数据更新后的“内容”高度(所以旧高度等于新高度)并且没有动画。另一方面,如果我删除animate()
旧的和新的高度是不同的。似乎animate()
不允许更新“内容”高度。