1

我在这里使用插件http://plugins.jquery.com/project/autogrow我在 Internet Explorer 和 Chrome 中遇到了问题(不是 Firefox)

请参见下面的代码:

<script type="text/javascript">
    $(document).ready(function() {
        $('#main').html('<textarea class=\"test\">aaaa</textarea>');
        $('.test').autogrow();
</script>

</head>

<body>
<div id="main">
</div>
</body>
</html>

基本上如果元素在启动页面后是新的,它就不起作用。所以我稍微侵入了插件并使用 livequery 更改了这些行(第 68 行)

        this.textarea.livequery(function() {
    $(this).focus(function() {self.startExpand()});
    $(this).blur(function() {self.stopExpand()});
        });

但是,尽管 Firefox 还可以,但这仍然不起作用。

你能帮我吗?

4

1 回答 1

2

我通过进行以下两项更改使其在 Chrome/Safari 中工作:

  1. 在您的代码中更改“ $('#main').html('<textarea class=\"test\">aaaa</textarea>');”以包含line-height样式,例如:“ $('#main').html('<textarea class=\"test\" style=\"line-height: 16px\">aaaa</textarea>');
  2. 将 jquery.autogrow.js 文件的第 50 行从“ if(this.line_height == NaN)”更改为“ if(isNaN(this.line_height))

在 Chrome/Safari 中效果非常不稳定,这似乎与 WebKit 报告新应用的 textarea 高度比你设置的少 4px 有关,我认为这是由于盒子模型和一些浏览器应用的样式,但我不知道。如果您对 FF 中的效果感到满意,那么这应该可以工作,因为它在 FireFox 中也很紧张。

于 2009-09-16T06:27:22.707 回答