打开焦点时展开文本区域
expand textarea when onFocus
我有很多textarea字段,我想让它们在聚焦时都展开
下面是我的代码演示:http://jsfiddle.net/PU73y/
问题是,当我点击它们时,它们不会扩展。为什么呢?
感谢<textarea id='txt1' class='txt' refID='1' style='height: 15px;'>this is testing of textrea </textarea>
$(function() {
$(".txt").focus(function(){
var element = $(this);
var refID = element.attr("refID");
// alert(refID);
$('#txt' + refID).focus (function() {
$('#txt' + refID).animate({
width: 400,
height: 200
}, 1000);
});
$('#txt' + refID).blur(function() {
$('#txt' + refID).animate({
width: 400,
height: 20
}, 1000);
});
});
});
http://jsfiddle.net/Y3rMM/
CSS….expand {
height: 1em;
width: 50%;
padding: 3px;
}
HTML…
<textarea class="expand" rows="1" cols="10"></textarea>
jQuery…$('textarea.expand').focus(function () {
$(this).animate({ height: "4em" }, 500);
});
你可以用CSS来完成,不需要JavaScript:
textarea {
height: 15px;
}
textarea:focus {
height: 200px;
width: 400px;
}
看到小提琴
http://jsfiddle.net/PU73y/3/
您在初始焦点处理程序中设置了第二个焦点处理程序,因此您需要再次单击以触发该处理程序。我在这里所做的只是删除了内部处理程序:
$(function() {
$(".txt").focus(function(){
var element = $(this);
var refID = element.attr("refID");
// alert(refID);
$('#txt' + refID).animate({
width: 400,
height: 200
}, 1000);
$('#txt' + refID).blur(function() {
$('#txt' + refID).animate({
width: 400,
height: 20
}, 1000);
});
});
});
可以运行:http://jsfiddle.net/PU73y/4/
您的问题是您在第一个焦点之后仅在$('#txt' + refID)
上创建了侦听器
相关文章:
- onkeyup无法动态创建多个文本区域
- 具有所有样式的文本正在复制到可编辑文本区域
- 在文本区域POST后解码JSON
- 在文本区域中使用jQuery.text()保持换行符
- ng在下拉列表和文本区域提交
- 将文本插入光标所在的文本区域
- 离开页面导航后保留文本区域内容
- Javascript-在文本区域中断,但不在段落中中断
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 测试文本区域中的特定文本格式
- 文本编辑后,append函数不适用于文本区域
- 如何在ReactJs中链接下拉列表和文本区域
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 使用JSON文件中的变量(字符串)填充文本区域
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何为动态创建的文本区域中输入的值更新ng模型
- 延迟高亮显示文本区域中的文本
- 将字母添加到文本区域的末尾
- TinyMCE在新添加的文本区域