在 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('<textarea class=\"test\">aaaa</textarea>');
”以包含line-height
样式,例如:“$('#main').html('<textarea class=\"test\" style=\"line-height: 16px\">aaaa</textarea>');
”
将 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”浏览器模式