JQuery оживить вопрос - PullRequest
       20

JQuery оживить вопрос

0 голосов
/ 24 февраля 2012

Моя функция выглядит так

$.fn.animateHighlight = function(highlightColor, originalColor, type, duration) {
    var highlightBg = highlightColor || "#FFFF9C";
    var animateMs = 500;
    var animateVal1 = {};
    animateVal1[type] = highlightColor;
    var animateVal2 = {}; 
    animateVal2[type] = originalColor;
    this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs);
};

Вызывается так

 $("#variants").animateHighlight("red", "#9c9c9c", "borderColor", 3000);

Проблема в том,

Это цвет границы по умолчанию для fieldset

enter image description here

И это после анимации цвета

enter image description here

Я знаю, что animate добавляет дополнительный атрибут стиля к элементу.Я хочу вернуть исходный цвет границы набора полей (удаление атрибута стиля вернет исходный цвет границы).

Попытка изменить последнюю строку функции на

this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs).removeAttribute('style');

Animate didnдаже не запускается.

Как я могу оживить и вернуться к исходной версии после перепрошивки?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Я думаю, что два метода для этого.

1. Если вы использовали цвет границы в атрибуте stye для VariantDiv.Default Стили будут потеряны в стиле при удалении атрибута style.Таким образом, вы должны держать первый цвет границы.

Например:

http://jsfiddle.net/tEwa9/

2.Если вы не используете стиль, вы можете сделать это так.Вы можете вызвать этот код после завершения анимации.

$(this).attr('style','');

Например:

http://jsfiddle.net/xSYWS/

0 голосов
/ 24 февраля 2012
this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs, function() {
    this.removeAttribute('style');
});
...