我有以下代码
$(document).ready(function() {
$("#myTextArea").focus(function() {
$("#myTextArea").animate({ "height": "75px"},"normal");
return false;
});
扩展焦点时的文本框.发生扩展,但是闪烁的光标消失了,至少在Firefox中没有!
编辑:textarea仍然是重点,我可以在上面键入.
为什么会这样?有没有办法再次显示?
提前致谢
最佳答案
您的return false语句将取消焦点动作:)仅当元素被焦点对准时,您才获得一个光标,我只是从函数中删除此行.
除此之外,文本区域中的.focus()并不是您可以轻松回收的,因为它的位置很重要,所以最好还是在这里坚持使用CSS更改:
$("#myTextArea").focus(function() {
$(this).css({ "height": "75px" });
});
这根本不会影响光标的行为,并且不会影响跨浏览器的SAEma(在浏览器之间焦点仍然不同),但是当然不会设置动画.另一种选择(我尚未在所有浏览器中进行过测试)是,可以在设置动画后使用相同的参数再次触发焦点,从而恢复位置,如下所示:
$("#myTextArea").focus(function(e) {
if($(this).height() == 75) return;
$(this).animate({ height: 75},"normal",function() {
$(this).blur().trigger(e);
});
});
You can test this from here,请确保检查所有浏览器,因为它们之间的焦点行为可能略有不同.