0

javascript のボタンをクリックして、別の div の下部に div を追加しようとしていますが、外側のコンテナーの高さに達すると、挿入後にリストが下部にスクロールされなくなります。

こちらのフィドルをご覧ください

リスト内の約 13 項目に到達するまで赤い追加ボタンをクリックすると、scrollTop 関数に問題が発生したようで、正しく機能しなくなります (同じ場所でホバーします)。

私はこれでかなり迷っており、コンテナとサイド div の両方の CSS 設定のさまざまな組み合わせを試しました。私を助けてください。

4

3 に答える 3

1

使用する

list.scrollTop(list.get(0).scrollHeight);

それよりも

list.scrollTop($(".active").offset().top);
于 2012-08-10T04:41:16.967 に答える
1

コードをより jQuery 風に再フォーマットしました。ただし、主な変更点は、list.scrollTop()の一番下までスクロールするように関数を変更することでしたlist

$(document).ready(function() {
    var list = $("#q-d-list");

    $(document).on('click', '#add', function() {
        $('.active', list).removeClass("active");

        var count = list.children().length + 1;
        var active = $('<div />', {
            'data-qid': count,
            'class': 'mli active'
        }).text('q' + count).appendTo(list);

        list.scrollTop(list[0].scrollHeight);
    });
});​

デモ: http://jsfiddle.net/MrvcB/19/

于 2012-08-10T04:42:22.923 に答える
0

試す:

$(document).ready(function () {
var count = 2;

    $("#add").live("click", function () {
        var list= $("#q-d-list");

        // remove the active class from the old item
        var $clone = $(list.find("div:last-child").removeClass("active").clone());
        count+=1;

        var str_count = "q"+count.toString();
        $clone.addClass("active").attr("data-qid",str_count).text(str_count);
        list.append($clone);
        list.scrollTop(list.get(0).scrollHeight);        
    });
});

http://jsfiddle.net/H4Kb3/

于 2012-08-10T04:48:23.153 に答える