jquery焦点回调

jquery焦点回调,jquery,Jquery,有人能告诉我为什么这不起作用吗 $("textarea.settings").focus(function () { var size = $(this).height(); console.log(size); if(size == 40) {$(this).animate({height: 120},"slow");} }, function () { $(this).anima

有人能告诉我为什么这不起作用吗

$("textarea.settings").focus(function () {
            var size = $(this).height();
            console.log(size);
            if(size == 40) {$(this).animate({height: 120},"slow");} 
        }, function () {
            $(this).animate({height: 40},"slow");
        });
请告诉我原因?

focus()
不接受2个参数。如果您的目的是打开/关闭焦点,请使用
blur()

$("textarea.settings").focus(function () {
    var size = $(this).height();
    console.log(size);
    if(size == 40) {$(this).animate({height: 120},"slow");} 
}).blur(function () {
    $(this).animate({height: 40},"slow");
});
您可以在([events list])
与设置布尔变量(
isFocus
)相比,您可以分别使用
三元运算符和动画来调整大小。

focus
不接受两次回调。它应该做什么?实际上是在做什么?当用户单击它时增大大小,当他们单击它时减小。@undefined我肯定我以前使用过它:|@Chud37-那么我肯定你弄错了,因为focus没有两个回调,你需要blur()。
$("textarea.settings").on('focus blur',function (e) {
    var isFocus = e.type=='focus',
        animH = isFocus? 120 : 40;
    $(this).animate({height: animH}, 800);
});