【发布时间】:2014-04-16 16:08:51
【问题描述】:
我正在尝试使用 jquery 和 php 构建 ajax 聊天。除滚动外,一切正常。 基本上,我已经设置了一个超时时间,聊天的内部内容将自动重新加载,但这会使聊天框在我滚动时一直向上滚动。 这是没有很多 li(消息)的代码(它们是用 php 加载的):
这是一个现场版本,您可以自己查看(在 jsfiddle 中不会发生向上滚动):
http://alfie.co.nf/templates/sandbox/php/Ajax-chat/
这是 Jquery:
var form = $('form');
form.submit(function(event){
event.preventDefault();
var username = form.find('input[name=user]').val(),
messform = form.find('input[name=message]')
mess = messform.val(),
url = form.attr('action');
var posting = $.post(url, {message : mess , user : username});
posting.done(function(data){
var content = $(data).find('.chatBox');
$('.chatBox').empty().append(content).fadeIn();
messform.val("").fadeIn();
});
})
function checkNewMessages(){
$('.chatBox').load(" .chatBox");
}
setInterval(checkNewMessages, 500);
【问题讨论】:
-
尝试在您的 checkNewMessages 函数中添加
return false -
刚试过..不幸的是没用:(
-
您可以使用sessionStorage or localStorage 保存该位置,并在重新加载后滚动到该位置。
标签: javascript php jquery css ajax