2

我是JS的新手,我正在自学。我想知道如何简化这个?这种块在我的脚本中重复了太多次。

$('.itemlist').on('focus', 'textarea.remarks', function (){
        $(this).animate({height: '50px'},400);});
$('.itemlist').on('blur', 'textarea.remarks', function (){
        $(this).animate({height: '15px'},400);});

干杯。

4

3 回答 3

3

你也可以这样做:

$('.itemlist').on({
    focus: function(){
        $(this).animate({ height: '50px' }, 400);
    },
    blur: function(){
        $(this).animate({ height: '15px' }, 400);
    }
}, 'textarea.remarks');

并不是说它更简单,但它看起来很漂亮。:)

于 2013-06-24T04:37:13.420 回答
3

试试看,

var height='50px';
$('.itemlist').on('focus blur', 'textarea.remarks', function (){
    $(this).animate({height: height},400);
    height=(height=='50px') ? '15px' : '50px';
});
于 2013-06-24T04:21:08.140 回答
2

也许是这样的:

$('.itemlist').on('focusin focusout', 'textarea.remarks', function(evt)
{
    var px = 0;

    if(evt.type === 'focusin') px = 50;
    if(evt.type === 'focusout') px = 15;

    $(this).animate({ height: px }, 400);

});

更新:使用focusinfocusout根据以下评论中的信息。

于 2013-06-24T04:29:44.877 回答