jQuery animate:如何防止价值变化?

时间:2011-12-12 07:04:48

标签: jquery jquery-animate dimensions

我正在制作一个名为$('。plan')的div。我想在变量中获取原始宽度,并且在悬停动画后不要更改此值,以便在动画完成后我可以返回它。

$(document).ready(function() {

    var $plan = $('.plan'),
    origWidth = $plan.width();

    $plan.hover(function() {
        $this = $(this);
        $this.stop().animate({width: 200, backgroundColor:'#a4a4a4'}, 500)      
    }, function() {
        $this.stop().animate({width: origWidth, backgroundColor:'#e2e2e2'}, 200)
    });

});

我该怎么做?

嘿,好像它现在正在工作。怎么样?

1 个答案:

答案 0 :(得分:0)

$(function() {

    var $plan     = $('.plan'),
        origWidth = $plan.width();

    $plan.hover(function() {
        $(this).stop().animate({width: 200, backgroundColor:'#a4a4a4'}, 500)      
    }, function() {
        $(this).stop().animate({width: origWidth, backgroundColor:'#e2e2e2'}, 200)
    });

});

以下是演示:http://jsfiddle.net/Dc367/

我真正改变的是$this引用,如果你不打算多次使用它,你真的不需要缓存选择。并且您没有在第二个$this函数中声明.hover()变量,因此我假设您的代码已经崩溃。