2012-06-14 66 views
1

我有一个问题,jQuery的append()函数我chrome。jQuery的追加铬

我正在浏览器聊天,正在从服务器检索长轮询聊天消息。 当客户端收到新消息时,该消息被追加到特定聊天实例div。

紧随追加后,我想滚动设置scrollTop,即“滚动到底部”chat_session_text。 这适用于大多数浏览器,但不适用于Chrome。经过一番研究,append()在chrome中看起来不同步?

如果我在我的代码中记录scrollHeight它显示div的错误高度。但是,如果我将这段代码粘贴到Chrome控制台中,它就是正确的高度!所以,我怀疑DOM没有准备好附加的div。

这里是我的代码:

var strHtmlToAppend = $('<div class="chat_message"><img class="imgThumb2" style="float:left;" src="UserImage.aspx?alias=' + fromUserID + '" border="0" alt="">' + strMsg + '</div>'); 
$('#' + elm + ' .chat_session_text').append(strHtmlToAppend); 
console.log($('#' + elm + ' .chat_session_text').prop("scrollHeight")); 
$('#' + elm + ' .chat_session_text').prop({ scrollTop: $('#' + elm + ' .chat_session_text')[0].scrollHeight }); 

有谁知道如何解决这个问题?也许som种类的回调一旦DOM我准备好了append()函数?

谢谢。

+1

http://jsfiddle.net/dvirazulay/pD7pL/1/ - 它在Chrome中运行得非常好。你能否提供一个jsfiddle来展示它在Chrome中的错误行为? –

回答