jQuery animate: как предотвратить изменение значения? - PullRequest
0 голосов
/ 12 декабря 2011

Я оживляю div с именем $ ('. Plan'). Я хочу захватить ее originalWidth в переменной и НЕ изменять это значение после наведения анимации , чтобы я мог вернуться к нему после завершения анимации.

$(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 голосов
/ 12 декабря 2011
$(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(), поэтому я предполагаю, что именно здесь ваш код сломался.

...