.animate到一个元素

时间:2013-02-14 13:03:29

标签: javascript jquery

我正在使用此功能进行动画悬停:

    function lookbookhover(){
        var lookbook = $('.lookbook_info')
        lookbook.bind({
            'mouseenter' : function(){
                lookbook_animate(200)
            },
            'mouseleave' : function(){
                lookbook_animate(30)
            }
        })
    }
    function lookbook_animate(h){
        $('.lookbook_info').animate({
            height: h
        }, 300 );
    }

我遇到的问题是,当用户悬停一个项目(.lookbook_info)时,它会激活页面上的所有其他.lookbook_info,如何指向只为一个元素设置动画?

我知道它使用的是$(this),但我还没有得到结果。

2 个答案:

答案 0 :(得分:2)

只需将元素传递给函数:

function lookbookhover(){
    $('.lookbook_info').on({
        mouseenter : function(){
            lookbook_animate(this, 200);
        },
        mouseleave : function(){
            lookbook_animate(this, 30);
        }
    });
}
function lookbook_animate(elem, h){
    $(elem).stop(true,true).animate({
        height: h
    }, 300 );
}

DEMONSTRATION

答案 1 :(得分:0)

如果您想要指出发生了哪个事件的元素,或者您想要选择特定元素(如first,last或nth-child),则可以使用$(this)

$(element:first)

$(element:last)

$(element:nth-child(2))

您需要将this作为参数传递给该函数。