2016-05-01 4 views
3

я, вероятно, хотите сделать ДИВ автопрокрутку в нижней части страницы, когда содержимое загружается, но на самом деле оленья кожа прокрутки Heres мой код на JQuery:Авто прокрутки DIV не работает

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

Когда я попытался оповещение Div он предупреждает undefined.Here является то, что в моем 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; 
} 

на самом деле, когда я нажимаю на сообщения содержание сообщения будет загружен на DIV с классом convo_mes:

$(".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> 

Я проверил консоль и она показывает «global.js: 24 неперехваченным TypeError: Не удается прочитать свойство„scrollHeight“неопределенной» ошибки, 24-й линии в global.js находится div.scrollTop = div.scrollHeight;

ответ

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; 
} 
+0

Теперь я не могу увидеть ошибку в журнале консоли, но все равно она не прокручивает вниз. Кстати, какова разница между объектом DOM и JQuery. –

+0

DOM - это представление браузера Document Object Model. jQuery - это настраиваемая инфраструктура, которая обертывает DOM, чтобы вы могли запускать на них настраиваемые функциональные возможности, что также помогает в обеспечении соответствия между браузерами, поскольку не все браузеры реализуют DOM одинаково. – Josh

+0

Я не вижу никаких других проблем с вашим кодом, и без JSFiddle я ничего не могу сделать. – Josh