1

これはうまく機能していますが、自動スクロールが機能しません...理由は何ですか?

PS私はjQueryだけを使いたいです...commentsListの中にありますcommentsPanel

    $.ajax({
            url: 'comments.php',
            type: 'POST',
            data: data,
            cache: false,
            success: function (comments_html) {

                $('#commentsPanel').html(comments_html);
                var commentsList = document.getElementById('#commentsList');
                commentsList.scrollTop = commentsList.scrollHeight;
                $('#loading').hide();
            }
        });

ありがとう!

   <div id="commentsPanel">
    <table width="260" height="220" border="0" cellpadding="3">
                    <tr><td height="5"></td><td><span style="text-align:right;"><a href="#close" rel="close_comment">Close</tr>
                    <tr><td height="220" valign="top">
                        <div id="commentsList" style="overflow: auto; width: 260px; height: 220px; text-align=left">
    <!-- CONTENT -->

    </div>
                </td></tr>
                <tr><td height="50">
                <form id="new_comment" name="comment_form" method="post" action="comments.php">
                    <input type="hidden" id="trackID" value="' . $track . '">
                    <input type="text" size="25" id="new_comment_text" /><span style="text-align:right">
                    <input type="submit" value="Comment" id="submit_comment"/></span>
                </form>
                </td></tr>
                </table>
</div>
4

4 に答える 4

2

使用するときvar commentsList = document.getElementById('#commentsList');は、含める必要はありません#

var commentsList = document.getElementById('commentsList');
于 2011-03-18T15:34:55.273 に答える
1
$.ajax({
            url: 'comments.php',
            type: 'POST',
            data: data,
            cache: false,
            success: function (comments_html) {

                $('#commentsPanel').html(comments_html);
                var commentsList = $('#commentsList'); //<- changed
                commentsList.scrollTop(commentsList.scrollHeight()); //<- add brackets here
                $('#loading').hide();
            }
        });
于 2011-03-18T15:42:24.000 に答える
1

おかしい、あなたは言った:「私はjQueryだけを使いたい」と言いましたが、それでもあなたはdocument.getElementById().

jQuery と DOM メソッドを混同しています。この行を変更します。

var commentsList = document.getElementById('#commentsList');

これに:

var commentsList = $('#commentsList');
于 2011-03-18T15:36:47.920 に答える
0

commentsListそれは内部に あると言いcommentsPanelますが、内部のすべてcommentsPanelを次の行に置き換えています。

$('#commentsPanel').html(comments_html);

当時、commentsList本当に存在していたのですか?行の後に次を追加しますvar commentsList = ...

console.log(commentsList);

それが実際に存在することを確認するため。

于 2011-03-18T15:50:50.833 に答える