У меня есть простое приложение чата, использующее Ajax и HTML.Всякий раз, когда я загружаю новые сообщения, я хочу прокрутить div, чтобы показать самое последнее сообщение, поэтому я делаю следующее:
jQuery:
function SendMessage()
{
var clientmsg = $("#comment").val();
var email = $("#email").val();
event.preventDefault();
if (clientmsg != '')
{
$.ajax(
{
type: 'POST',
url: url,
data:
{
email: email,
message: clientmsg
},
success: function (data)
{
// Success means the message was saved
// Call the function that updates the div with the new messages
UpdateChat();
$("#conversation").scrollTop($("#conversation").outerHeight() * 1000);
}
});
}
}
Я использую эту строку для прокруткиdiv до максимума:
$("#conversation").scrollTop($("#conversation").outerHeight()*1000);
Моя проблема в том, что он прокручивается до максимума БЕЗ отображения новых сообщений .Он прокручивается до последнего сообщения перед новым .Что странно, потому что я звоню после обновления чата.Вот функция, которая обновляет чат:
function UpdateChat(){
$.ajax({
// URL that gives a JSON of all new messages:
url: "url",
success: function(result)
{
var objects = JSON.parse(result);
$("#conversation").html("");
objects.forEach(function(key, index){
//append the messages to the div
$("#conversation").append("html here");
});
}
});
};