在Internet Explorer中动态内容上自动生成jQuery插件

时间:2009-09-16 03:53:26

标签: javascript jquery html livequery autogrow

我在这里使用插件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 个答案:

答案 0 :(得分: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))
  3. Chrome / Safari中的效果非常紧张,这似乎与WebKit有关,报告新应用的textarea高度比你设置的低4px,我认为这是由于盒子模型和一些浏览器应用的样式,但我不知道。如果你对FF中的效果感到满意,那么这应该可行,因为它在FireFox中也非常紧张。