自动滚动div不起作用

时间:2016-05-01 13:23:54

标签: javascript jquery css

我可能想在内容加载时将div自动滚动到页面底部,但它实际上并没有在jquery上滚动我的代码:

function auto_scrollmes(){
    //undefined ang scrollheight.
    var div = $(".convo_mes").scrollHeight;
    alert(div);
    div.scrollTop = div.scrollHeight;
}

当我试图提醒div时,它会提示undefined。这就是我的css中的内容:

#convo_mes{
text-align:left;
width:98%;
height:80%;
}

.convo_mes{
text-align:left;
width:100%;
height:100%;
background:#fff;
border:1px solid #000;
overflow-x:hidden;
overflow-y:auto;
 }

实际上当我点击一条消息时,消息的内容将被加载到具有convo_mes类的div上:

$(".mes").click(function(){
    var user = $(this).attr("id");      
    $("#convo").html("<b>"+user+"</b>");
    $("#convo_ctrl").show();
    $(".send_to").attr("id",user);
    $(".convo_mes").html("Loading conversation <img width='15' height='15' src='./img/load.gif'>");

    $.post("./php/view_msg.php",{friend:user},function(view_msg){
        $("#"+user).html(user+" "+view_msg);
    });

    setTimeout(function(){get_convo()},2000);
    setTimeout(function(){auto_scrollmes()},3000);

});

我尝试了所有内容并继承了我的HTML代码:

<div id="convo_mes">
<div class="convo_mes">

</div>
</div>

我检查了控制台,它显示了&#34; global.js:24未捕获的TypeError:无法读取属性&#39; scrollHeight&#39;未定义&#34;错误,global.js中的第24行是div.scrollTop = div.scrollHeight;

1 个答案:

答案 0 :(得分:2)

$(".convo_mes")是一个jQuery对象,而不是DOM对象 像这样访问DOM对象:$(".convo_mes")[0]

这应该有用。

function auto_scrollmes(){
    //undefined ang scrollheight.
    var div = $(".convo_mes")[0];
    alert(div);
    div.scrollTop = div.scrollHeight;
}