我对 chrome 的 jquery 的 append() 函数有疑问。
我正在处理浏览器聊天,并正在从服务器上通过长轮询检索聊天消息。当客户端收到一条新消息时,该消息将附加到特定的聊天实例 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 });
有谁知道如何解决这个问题?DOM 准备好后,可能会为 append() 函数提供某种回调?
谢谢。