0

さて、これは私が使おうとしているものです

$(".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を使用していますが、これを機能させることを望んでいました。

4

1 に答える 1

2

IDは1つしかないため、IDで機能します。しかし、クラスでは、どのクラスがどれであるかをどのように知るのでしょうか。

これを試して:

$(".shouts").each(function() {this.scrollTop = this.scrollHeight;});
于 2012-12-25T02:50:25.753 に答える