jQuery scrollTop 函数在 ajax 调用后不起作用

标签 jquery css ajax jquery-ui

这是我的 ajax 调用...工作正常,但 Jquery 的 scrollTo 插件没有将内容定位在我想要的位置。下面

 //this will show the contents of the email body when the list item is clicked.
    jQuery("#list-item-"+username+"").click(function(){

        jQuery(".reply-to-container").hide();
        jQuery("#reply-to-"+username+"").toggle("slide", {direction: 'up'});
        jQuery("#reply-input-"+username+"").val('');
        jQuery(".display-reply-content").html("");
        jQuery("#send-btn-ajax-"+username+"").hide();
        jQuery("#reply-input-"+username+"").hide("slide", {direction: 'up'});


        var myUsername = getUrlVars()['username'];
        var messageID = <?php echo $this->message_id; ?>;
        var dataString = 'messageID='+ messageID + '&friend=' + username + '&myUsername=' + myUsername;

        $.ajax({
            type: "POST",
            url: "/friends/mark-read/", 
            data: dataString,
            cache: false,
            success: function(html)
            {    
                jQuery("#mail-icon-"+username+"").replaceWith("<div id='mail-icon-"+username+"' class='ui-icon ui-icon-mail-open mail-closed'>");
                jQuery("#display-reply-"+username+"").css({"display" : "none"}).html(html).fadeIn(2500);
                console.log(jQuery("#display-reply-"+username+"")[0].scrollHeight);
                jQuery("#display-reply-"+username+"").scrollTop(jQuery("#display-reply-"+username+"").scrollHeight);

            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
                console.log(textStatus, errorThrown);
            }
        }) 
    })

这是我的 Div 的 CSS

.display-reply-content{
    max-height: 200px;
    overflow: auto; 
    }

最佳答案

我认为你需要改变内容滚动到容器高度的位置:

var $content = jQuery(".display-reply-content");
$content.scrollTop($content[0].scrollHeight);

尝试向您的 AJAX 调用添加一个错误函数来处理任何错误:

$.ajax({
        type: "POST",
        url: "/friends/mark-read/", 
        data: dataString,
        cache: false,
        success: function(html)
        {    
            //...
        },
error: function(jqXHR, textStatus, errorThrown) {
  console.log(textStatus, errorThrown);
}
...

关于jQuery scrollTop 函数在 ajax 调用后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23247276/

相关文章:

c# - 在客户端获取 RadGrid 的列宽

javascript - 选中单选按钮(输入)时如何触发事件?

html - 带有信息选项悬停的图像堆叠

javascript - jquery/javascript 检测并捕获页面刷新事件?

javascript - 打开内联 OnClick 以单击 Jquery

jquery - 删除 :hover styles on click

html - 如何在子组件 scss 文件中覆盖 main.component.scss 中的 css

css - 为什么没有类似 CSS 的 GUI 创建器

javascript - 当我们进行 ajax 调用并等待响应并阻止页面时显示微调器

php - 在 WooCommerce 购物车页面中添加费用的自定义复选框