2

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

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

请告诉我为什么?

4

2 回答 2

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");
});
于 2012-11-16T14:34:08.107 回答
1

jsBin 演示

$("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),您可以分别使用 aternary operator和 animate 来调整您的大小。

于 2012-11-16T14:38:55.823 回答