3

我在这里看到了如何滚动到 div 的底部......但不知何故它对我不起作用......自动对焦也是如此。

猜猜问题是我做了一个 AJAX 调用,但它不起作用。

我的 AJAX 调用:

  function toonBericht(vuserid) {
    $("#verstuurbericht").show();
    $("#chatresultaatcontent").val("");

    $.ajax({
      type: "GET",
      data: { userid:vuserid }, 
      url: './query/berichten/getbericht.php',
      success: function(result) {
        $("#chatresultaatcontent").html(result);
        var objDiv = document.getElementById("chatresultaatcontent");
        objDiv.scrollTop = objDiv.scrollHeight;
      }
    });
  }

然后我当然有一个名为#chatresultaatcontent 的div。它包含来回发送的聊天消息。

作为替代方案,我还尝试在成功后使用以下代码加载一个函数(即 scrollBottom()):

$("#chatresultaatcontent").scrollTop($("#chatresultaatcontent")[0].scrollHeight);

这也没有任何作用。成功后尝试自动聚焦于某个领域时出现同样的问题......有人知道为什么吗?

4

2 回答 2

2

尝试这个:

success: function(result) {
    var content = $("#chatresultaatcontent");
    content .
        html(result).
        delay(50).
        scrollTop(content[0].scrollHeight);
        // The delay seems essential due to some strange problems
        // with the OP's code
  }

一个工作演示

于 2013-08-17T15:47:47.223 回答
1

这不是最漂亮的解决方案,但不知何故这似乎有效:

  function toonBericht(vuserid) {
    $("#verstuurbericht").show();
    $("#chatresultaatcontent").val("");

    $.ajax({
      type: "GET",
      data: { userid:vuserid }, 
      url: './query/chatten/getchatbericht.php',
      success: function(result) {
        $("#chatresultaatcontent").html(result);
        setTimeout(function(){
          var d = $("#chatresultaatcontent");
          d.scrollTop(d[0].scrollHeight);
        }, 1);
      }
    });
  }

使用微秒的超时?它确实有效......如果我不使用它,它不会。很奇怪,但好吧......我现在只是这个解决方案。

于 2013-08-17T16:40:42.160 回答