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

后端 未结 1 1611
花落未央
花落未央 2021-01-13 01:29

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?

1条回答
  •  孤街浪徒
    2021-01-13 01:36

    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.

    ...

    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');
        });
    

    0 讨论(0)
提交回复
热议问题