我有多个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);
});
});
});
答案 0 :(得分:2)
... 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);
});
这样的东西会起作用。
答案 1 :(得分:0)
您可以使用CSS执行此操作,无需使用JavaScript:
textarea {
height: 15px;
}
textarea:focus {
height: 200px;
width: 400px;
}
请参阅Fiddle
答案 2 :(得分:0)
您在初始焦点处理程序中设置了第二个焦点处理程序,因此您需要再次单击以触发该处理程序。我在这个小提琴中做的就是删除内部处理程序:
$(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);
});
});
});
答案 3 :(得分:0)
这有效:http://jsfiddle.net/PU73y/4/
您的问题是您在第一个焦点之后仅在$('#txt' + refID)
上创建了听众。