saca la función que tenés en el setinterval fuera del ready
y para el scroll como tomas el tamaño ponelo en la funcion de callback del post
algo como
Código Javascript
:
Ver original<html>
<head>
<title>Ejemplon</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<script type="text/javascript">
$( function (){
traerMensajes();
setInterval("traerMensajes()",2000);
});
function traerMensajes(){
$.post(
'algunaurl',
function(data) {
$('#mensajes').append( data );
$("#mensajes").animate({ scrollTop: $("#mensajes").attr("scrollHeight") }, 'normal');
}
);
};
</script>
<style>
#mensajes{height:100px; width:150px; overflow:scroll}
</style>
<body>
<div id="mensajes">
</div>
</body>
</html>