2013-08-02 6 views
0

у меня есть некоторые JQuery код, который будет загружать Chatbox моего сайта каждый второй (так что если какие-либо новые сообщения прибывают они становятся видимыми)JQuery анимации не анимировать

мой код здесь

function loadLog(){  
    $.ajax({ 
     url: "/log.html", 
     cache: false, 
     success: function(html){   
      $("#chatbox").html(html); //Insert chat log into the #chatbox div   
      if($("#chatbox").attr("scrollHeight") + 20 > $("#chatbox").attr("scrollHeight") - 20){ 
       $("#chatbox").animate({ scrollTop: newscrollHeight }, 'normal'); //Autoscroll to bottom of div 
      }    
     }, 
    }); 
} 

все отлично работает, за исключением того, что он предназначен для автоматической прокрутки до нижней части чата, поэтому вы видите новейшие сообщения, вместо этого он просто находится наверху.

Я использую самую последнюю версию JQuery

+3

Попробуйте использовать .prop ("scrollHeight"), а не attr – Mihail

+2

также условие if не имеет смысла .. 'if (x + 20> x - 20)' ??????? – Prasanth

+0

Условие означает, что он будет прокручиваться только в том случае, если можно прокрутить – user2166538

ответ

1

Там нет такого атрибута scrollHeight (это свойство). Что делать, если вы пытаетесь что-то вроде этого, вместо:

$box.animate({scrollTop: $box[0].scrollHeight}, 'normal'); 

http://jsfiddle.net/dfsq/zBdas/

Еще один совет: убедитесь, что вы кэшировать DOM запросы как $box = $("#chatbox"), не повторно элементы снова и снова.

+0

thankyou это прекрасно работает, мой использовал, чтобы работать, поэтому я не знаю, что случилось LOL – user2166538