jquery焦点回调

时间:2012-11-16 14:31:49

标签: jquery

有人可以告诉我为什么这不起作用吗?

$("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");
        });

请告诉我为什么?

2 个答案:

答案 0 :(得分:6)

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");
});

答案 1 :(得分:1)

jsBin demo

$("textarea.settings").on('focus blur',function (e) {
    var isFocus = e.type=='focus',
        animH = isFocus? 120 : 40;
    $(this).animate({height: animH}, 800);
});

您可以在.on([events list])内列出您的活动 比设置一个布尔变量(isFocus),您可以分别使用ternary operator和动画来播放您的尺寸。