scrollTop()不能与IE上的TextArea一起使用

时间:2014-03-25 12:01:43

标签: c# javascript jquery

这个问题很常见但是我没有看到与我相似的问题。我有我的.cshtml文件,我使用Microsoft MVC HtmlHelpcer类声明了TextArea。代码如下:

@Html.TextArea("contentContainer", new Dictionary<string, object> { { "style", "width: 100%; height: 600px" } })

然后我有一个函数,它一直在从LogFile读取,并且每次有更新时都会将此文件的内容附加/添加到此TextArea。所以我在jQuery中有我的函数,它将内容附加到TextArea,然后我希望它将TextArea滚动到TextArea的最底层。代码非常简单:

appendContent: function (content) {

    var $textArea = $('#contentContainer');
    var shouldBeScrolled = true;

    $textArea.append(content);

    var shouldBeScrolled = true;
    if (shouldBeScrolled) {
        $textArea.scrollTop(
           $textArea[0].scrollHeight
        );
    }
}

请忽略shouldBeScrolled变量。我只是因为后来我计划在滚动时创建一些约束。

好的,基本上这段代码在Chromium上工作得很好,内容会被追加,TextArea会滚动到底部。 在Internet Explorer上,它根本不会滚动。为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

这很可能是JQuery中的一个错误 - 之前我遇到了同样的问题,作为一种解决方法,我最终滚动到另一个包含TextArea的项目,并且其顶部边界与TextArea重合。

这样的事情:

<div id="TextAreaContainer">
  <textarea></textarea>
</div>

然后Javascript看起来像:

$("#TextAreaContainer").scrollTop();
相关问题