Есть ли существует какой-либо путь, как сбросить стили назад к тому, что находится в моем CSS?
Пример:
#foo {width: 50px; height: 50px; position: absolute; top: 150px; left: 250px;}
function moveFoo(newpostop, newposleft){
$('foo').setStyle({top: newpostop+'px', left: newposleft+'px'});
}
Теперь, когда я сделан с ним, я хотел бы положить обратно нечто, когда это было. Я знаю, что это может быть трудно кодировано, но я должен сделать это с 25 различными отделениями.
Спасибо
Установка стиля не исключает всех элементов в классе CSS. Он отменяет только те, которые были изменены. Фактический стиль элемента управления представляет собой комбинацию стиля CSS и настраиваемого стиля атрибута style. Чтобы полностью вернуться к стилю CSS, просто удалите атрибут стиля.
$('#foo').removeAttr('style');
РЕДАКТИРОВАТЬ:
По-видимому, вышеуказанное не работает. Однако в комментариях мне сообщили, что следующее:
$('#foo').writeAttr('style', '');
Вы можете удалить атрибут, но я не думаю, что вы сможете вернуть его обратно.
Вы можете отменить его, если использовали дополнительную таблицу стилей для изменения макета. Таким образом, вы сможете включить в таблице стилей отображение изменения и отключить его, чтобы отменить.
Лучшим решением, вероятно, будет сохранение старых атрибутов в массиве и использование этого массива для обратного изменения атрибутов стиля
Примерно так:
var tempStyle = new Array();
function moveFoo(newpostop, newposleft){
tempStyle ["foo"] = new Array();
tempStyle ["foo"]["top"] = newpostop;
tempStyle ["foo"]["left"] = newposleft;
$('foo').setStyle({top: newpostop+'px', left: newposleft+'px'});
}
function restoreFoo(){
$('foo').setStyle({top: tempStyle ["foo"]["top"]+'px', left: tempStyle ["foo"]["left"]+'px'});
}