asp.net-为什么textarea上的jquery.animate会使闪烁的光标消失?

前端之家收集整理的这篇文章主要介绍了asp.net-为什么textarea上的jquery.animate会使闪烁的光标消失? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有以下代码

$(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,请确保检查所有浏览器,因为它们之间的焦点行为可能略有不同.

猜你在找的jQuery相关文章