2010-05-31 8 views

Odpowiedz

16

jQuery ustawia swoje manipulacje za pomocą wbudowanego atrybutu style, więc ustaw to na ''.

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

Zakłada to nie było inline style atrybuty ustawione na elemencie pochodzących z serwera. Lepiej używać arkuszy stylów, jeśli tak.

Jeśli element musi pochodzić z serwera z ustawionymi atrybutami style, to prawdopodobnie można zapisać wartość w pamięci podręcznej w zmiennej i zresetować w razie potrzeby.

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


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

EDIT:

W razie potrzeby, można wysyłać elementy z serwera z atrybutów niestandardowych pamiętać oryginalnego class atrybut, na przykład.

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

Następnie można odwołać się do oryginału w dowolnym momencie.

Można nawet znaleźć wszystkie elementy, które mają atrybut originalClass w ten sposób.

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

lub znaleźć elementy gdzie atrybut class zostało zmodyfikowane w stosunku do oryginału.

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

wydaje się być w porządku, a co z zapamiętywaniem, jaką klasę posiadała i czego nie miała? – Moak

+0

@Moak - może wypróbuj coś trochę twórczego, jak przy użyciu niestandardowego atrybutu, takiego jak originalClass, aby Twój element pochodził z serwera w ten sposób: '

...
'. Następnie możesz uzyskać wartość originalClass, tak jak każdy inny atrybut. – user113716

+0

@Moak - zaktualizowałem swoją odpowiedź przykładami. – user113716

Powiązane problemy