2012-12-25 60 views
0

好了,所以這是我想使用scrollTop的= scrollHeight屬性的一類,而不是ID

$(".shouts").scrollTop = $(".shouts").scrollHeight;

我相信這使用類而不是ID的時候是正確的,但,這並不工作,我想這是因爲它上面的代碼是

function refreshShouts() { 
    var refreshRate = 5000; // time in milliseconds 
    var cacheBuster = (new Date).getTime(); 
    $.ajax({ 
     type: "POST", 
     dataType: "xml", 
     url: "php/getShouts.php", 
     data: {op: 'tick', time: cacheBuster}, 
     error: function() { alert('An error occured! Try again.'); }, 
     success: function(xml){ 
      if($('shout', xml).size() > 0) { 
       $('shout', xml).each(function(id){ 
        var nickname = $('nickname', this).text(); 
        var message = $('message', this).text(); 
        var date = $('date', this).text(); 
        var cssClass = 'shoutRow1'; 
        if((id%2)/10 == 0) 
         cssClass = 'shoutRow'; 
        var shoutRow = '<div id="'+cssClass+'"><span id="nickname">'+nickname+' <span id="date">('+date+')</span>: </span><span id="shoutedMessage">'+message+'</span></div>'; 
        if(id == 0) 
         $('#shoutsContainer').empty().removeClass().addClass('shouts').html(shoutRow); 
        else 
         $('#shoutsContainer').removeClass().addClass('shouts').append(shoutRow); 
       }); 
      } else { 
       $('#shoutStatus').empty().addClass('shoutError').html($('error', xml).text()); 
       $('#shoutsContainer').empty().removeClass().addClass('noShouts').html('Shouts will be displayed here!'); 
      } 
      $(".shouts").scrollTop = $(".shouts").scrollHeight; 
     } 
    }); 
    setTimeout('refreshShouts()', refreshRate); 
} 

也許因爲它創造了它,我不知道..通常我使用DIV的id,而不是類,但我希望能得到這工作。

+0

這將幫助:'$( 「呼喊」)第一()scrol ...'。抓取第一個元素作爲jQuery對象 – SpYk3HH

回答

2

它適用於ID,因爲只有一個。但是在課堂上,它如何知道哪一個是哪個?

試試這個:

$(".shouts").each(function() {this.scrollTop = this.scrollHeight;}); 
+0

。除非他希望它滾動到該類的所有人,否則不需要這些元素,而這些元素不會被用戶看到。它似乎會走到最後一個。他最好使用'.last()'或'.first()'。 +1無論如何給出答案。節日快樂! – SpYk3HH

相關問題