使用ajax滚动溢出的div

时间:2015-07-16 21:57:13

标签: javascript jquery html ajax

我知道有类似的帖子,但我找不到任何一个对我有用的答案。我希望新消息滚动到底部,但它没有这样做。

这是我的脚本show_messages.js:

我有一个名为'show-messages'的div,设置为overflow:auto

$(document).ready(function() {
    // grab id from html attribute
    var uid = $('#message').attr('name');

    setInterval(function() {
        // load messages with userid
        $('#show-messages').load('show_messages.php?uid=' + uid);
        $("#show-messages").scrollTop = $("#show-messages").scrollHeight;

    }, 500 );
});

有没有人有任何想法会导致不向下滚动?

2 个答案:

答案 0 :(得分:2)

我认为你应该使用.scrollTop函数作为加载方法的回调。

$('#show-messages').load('show_messages.php?uid=' + uid, function () {
        $("#show-messages").scrollTop($("#show-messages")[0].scrollHeight);
});

答案 1 :(得分:1)

scrollTop是jQuery对象的函数,但您将其称为属性。但是,scrollHeight不是,但它是HTML元素的属性。要从jQuery对象访问(第一个)HTML元素,请使用$()[0]

此外,您应该在load完成

之后对其进行调整
$('#show-messages').load('show_messages.php?uid=' + uid, function () {
    $("#show-messages").scrollTop( $("#show-messages")[0].scrollHeight );
});