jQuery scrollTop不适用于页面加载

时间:2015-06-18 15:48:57

标签: javascript jquery

我有一个基于聊天的系统,我使用jQuery / AJAX在MVC框架中构建。页面加载时,它会使用数据库中的最后x个响应填充聊天窗口。

我到处寻找答案,但却找不到任何答案。我试过的每一种选择都无法解决。

我使用此功能向下滚动到聊天窗口的底部;

function scrollToBottom()
{
    var panel = $('.panel-body#main-window');
    panel.scrollTop(panel.height());
}

这是我的CSS:

.panel-body#main-window
{
    overflow-y: scroll;
    height: 550px;
    width: 100%
}

当我将它绑定到onClick处理函数时,这工作正常,但无论我尝试过什么,它都不会在$(document).ready();结束之前滚动到我的面板底部呼叫。因此,当页面加载时,它不会滚动到我的容器底部。

在Firefox和Chrome中都尝试了这一点并且都不起作用。我的函数正在调用,但当它在$(document).ready();内调用时,它拒绝滚动到我的面板底部。

我也尝试过这个功能,它也不起作用;

$(window).on('load', function(){
    setTimeout(scrollToBottom(), 500);

});

1 个答案:

答案 0 :(得分:2)

你没有将函数的引用传递给你的setTimeout,我应该如下所示:

$(window).on('load', function(){
    setTimeout(scrollToBottom, 500);
});

你这样做的方式,只要代码得到评估,就会执行scrollToBottom函数。