在 Internet Explorer 中的动态内容上自动增长 jQuery 插件

Posted

技术标签:

【中文标题】在 Internet Explorer 中的动态内容上自动增长 jQuery 插件【英文标题】:Autogrow jQuery Plugin on dynamic content in Internet Explorer 【发布时间】:2010-11-28 16:29:08 【问题描述】:

我在这里使用插件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 还可以,但这仍然不起作用。

你能帮忙吗?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

我按照你说的做了,但是没有用。你还有什么地方改变的吗? 没关系。我将代码改回原来的并工作了!!

以上是关于在 Internet Explorer 中的动态内容上自动增长 jQuery 插件的主要内容,如果未能解决你的问题,请参考以下文章

Internet Explorer中的图像缩放使图像被宽度按下

如何使用 Internet Explorer 的 javascript 获取鼠标指针位置?

在 Intranet 中强制使用“Internet Explorer 8”浏览器模式

Internet Explorer 11(Windows-10)不会显示明亮的视频

Internet Explorer 中的 SVG 太小

清除 Internet Explorer 中的文件输入框