Как вернуть элементы в исходное состояние после цепочки манипуляций? - PullRequest
5 голосов
/ 31 мая 2010

После нескольких анимаций добавление классов и установка стилей CSS. Есть ли простой способ вернуть элемент в исходное состояние доставки на сервер?

1 Ответ

17 голосов
/ 31 мая 2010

jQuery устанавливает свои манипуляции с помощью встроенного атрибута style, поэтому просто установите для него значение ''.

$('#someDiv').attr('style','');

Предполагается, что на элементе, поступающем с сервера, не установлено никаких встроенных атрибутов style. Лучше использовать таблицы стилей, если это так.

Если элемент должен поступать с сервера с установленными атрибутами style, то, я полагаю, вы можете кэшировать значение в переменной и сбрасывать его при необходимости.

   // Cache original attributes
var originalAttributes = $('#someDiv').attr('style');


   // Reset from original
$('#someDiv').attr('style',originalAttributes);

EDIT:

При необходимости вы можете отправить свои элементы с сервера с пользовательскими атрибутами, чтобы запомнить, например, оригинальный атрибут class.

<div class="myClass" originalClass="myClass">...</div>

Затем вы можете ссылаться на оригинал в любое время.

Вы даже можете найти все элементы с атрибутом originalClass, как этот.

var $elementsWithOriginal = $('[originalClass]');

или найдите элементы, атрибут class которых был изменен по сравнению с оригиналом.

var $modifiedFromOriginal = $('[originalClass]').filter(function() {
        return $(this).attr('class') != $(this).attr('originalClass');
    });
...