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

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 に答える