使用 jQuery 根据文本区域内的文本设置文本区域的高度
我的表单中有一个
$('#links').focusin(function() {
$('#links').animate({
height: '100px'
}, 300, function() {
// done
});
});
这非常有效,当文本区域获得焦点时,它的高度会很好地增加到 100px。现在,我希望它在失去焦点时根据其中的文本缩小到合适的大小。我是这样写的:
$('#links').focusout(function() {
$('#links').animate({
height: 'auto'
}, 300, function() {
// done
});
});
但是它不起作用,它只是保持在相同的高度(100px)。有什么办法可以做到这一点吗?
谢谢。 :)
编辑:为了避免一些混乱, $('#links').focusout
的偶数处理程序工作正常,这是我测试的第一件事。所以我认为这是动画或 CSS 属性的问题。
I have a <textarea>
element in my form that has this code attached to it:
$('#links').focusin(function() {
$('#links').animate({
height: '100px'
}, 300, function() {
// done
});
});
This works perfectly, when the text area gets focus it increases in height nicely to 100px. Now, I want it to shrink back down to a suitable size based on the text inside it when it loses focus. I wrote this:
$('#links').focusout(function() {
$('#links').animate({
height: 'auto'
}, 300, function() {
// done
});
});
But it doesn't work, it just stays at the same height (100px). Is there any way to do this?
Thanks. :)
Edit: To save some confusion, the even handler for $('#links').focusout
works fine, that's the first thing I tested. So I assume it's a problem with the animation or the CSS property.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试使用
$( '#links' ).blur( function(){ ... } )
代替http://api.jquery.com/blur/
编辑您的实际代码:
其他一些注释..您可以使用 $( '#links' ).focus() 代替 focusin,也可以,一旦进入该函数,您可以使用 $( this ).animate() 作为快捷方式。只是一些小技巧之类的。
Try
$( '#links' ).blur( function(){ ... } )
insteadhttp://api.jquery.com/blur/
Edit, your actual code:
Some other notes.. You can use $( '#links' ).focus() instead of focusin, and also, once you're in the function, you can use $( this ).animate(), as a shortcut. Just little tips and whatnot.
这与您正在做的不太一样,但非常相似: http ://james.padolsey.com/javascript/jquery-plugin-autoresize/
This isn't quite the same as what you're doing, but quite similar: http://james.padolsey.com/javascript/jquery-plugin-autoresize/
但无论如何,动画不会读取高度的 css 值 auto
我偶然发现了这个 http://www.unwrongest .com/projects/elastic/ 我猜这就是你需要的
but anyways the animate doesnt read the css value auto for height
i stumbled upon this http://www.unwrongest.com/projects/elastic/ which is what you need i guess
您不能在 jQuery 中使用 auto 来制作动画。您应该将其设置为自动,然后获取实际高度(以像素为单位)并最后为其设置动画。
看看这里
You can't use auto to animate in jQuery. You should set it to auto, then get the actual height (in px) and finaly animate it.
Take a look here