Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to reset elements to their original state, after a chain of manipulations?

After a bunch of animating, adding classes and setting css styles. is there an easy way to reset an element to be back in its original server delivered state?

like image 954
Moak Avatar asked May 31 '10 16:05

Moak


1 Answers

jQuery sets its manipulations using the inline style attribute, so just set that to ''.

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

This assumes there were no inline style attributes set on the element coming from the server. Better to use style sheets if so.

If the element must come from the server with style attributes set, then I suppose you could cache the value in a variable, and reset it when needed.

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


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

EDIT:

If needed, you could send your elements from the server with custom attributes to remember the original class attribute, for example.

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

Then you can reference the original anytime you need.

You could even find all elements that have the originalClass attribute like this.

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

or find elements where the class attribute has been modified from the original.

var $modifiedFromOriginal = $('[originalClass]').filter(function() {
        return $(this).attr('class') != $(this).attr('originalClass');
    });
like image 197
user113716 Avatar answered Oct 17 '22 06:10

user113716