Eu sou novo no JQuery. No meu aplicativo, tenho o seguinte:
$("#displayPanel div").live("click", function(){
$(this).css({'background-color' : 'pink', 'font-weight' : 'bolder'});
});
Quando clico em um Div, a cor desse Div é alterada. Dentro dessa função Click, tenho algumas funcionalidades a fazer. Afinal, eu quero remover o Css aplicado da Div. Como eu poderia fazer isso no JQuery?
Respostas:
Coloque suas propriedades CSS em uma classe e faça algo assim:
Então, onde estão suas 'outras funcionalidades', faça algo como:
fonte
<div style="xxx"/>
ainda é CSS ... não é uma maneira muito boa de fazer isso, mas funciona.addClass
ouremoveClass
ouremoveAttr('style')
como na resposta do @ ToRrEs.Você pode remover css específico que está no elemento como este:
Embora eu concorde com karim que você provavelmente deveria estar usando classes CSS.
fonte
Você pode usar o método removeAttr, se desejar excluir todo o estilo embutido adicionado manualmente com javascript. É melhor usar classes CSS, mas você nunca sabe.
fonte
.css('style-name', 'style-value')
função do jQuery adiciona estilos embutidos a um elemento - e é essencial para atualizar estilos rapidamente. Um script de arrastar / soltar pode alterar os estilostop
eleft
de um elemento absolutamente posicionado - uma instância em que o uso de classes é impraticável.Você pode remover propriedades embutidas desta maneira:
Por exemplo:
Isso é essencialmente mencionado acima, e definitivamente faz o truque.
BTW, isso é útil em casos como quando você precisa limpar um estado após a animação. Claro que eu poderia escrever meia dúzia de classes para lidar com isso, ou poderia usar minha classe base e #id fazer algumas contas e limpar o estilo embutido que a animação se aplica.
fonte
OU
fonte
Como observação, dependendo da propriedade, você poderá configurá-lo para automático.
fonte
Defina o valor padrão, por exemplo:
$ (this) .css ("altura", "automático");
ou no caso de outros recursos CSS
$ (this) .css ("altura", "herança");
fonte
Na verdade, a melhor maneira que encontrei para fazer isso ao ter que fazer um estilo complexo baseado em jquery, por exemplo, se você tem um modal que precisa exibir, mas precisa calcular os deslocamentos da página para obter os parâmetros corretos nos quais eles precisam entrar a função a jQuery ("x"). css ({}).
Então, aqui está a configuração dos estilos, a saída de variáveis que foram computadas com base em vários fatores.
Para limpar esses estilos. ao invés de definir algo como
A maneira mais simples seria
Quando o jquery manipula elementos no dom, os estilos são gravados no elemento no atributo "style" como se você estivesse escrevendo os estilos inline. Tudo que você precisa fazer é limpar esse atributo e o item deve redefinir para seus estilos originais
Espero que isto ajude
fonte
Eu tenho o mesmo problema também, basta remover o valor
fonte
Se você não quiser usar classes (o que realmente deveria), a única maneira de conseguir o que deseja é salvando primeiro os estilos alterados:
fonte
Eu usei a segunda solução de user147767
No entanto, há um erro de digitação aqui. Deveria ser
não <= 0
Também alterei essa condição para:
como algumas vezes adicionamos uma propriedade css ao jQuery e é adicionada de maneira diferente para diferentes navegadores (por exemplo, a propriedade border será adicionada como "border" para Firefox, e "border-top", "border-bottom" etc. para IE )
fonte
Antes de adicionar uma classe, você deve verificar se ela já possui classe com o método .hasClass ()
Para sua pergunta específica. Você deve colocar suas coisas na Cascading Stylesheet. É uma prática recomendada separar design e funcionalidade.
portanto, a solução proposta para adicionar e remover nomes de classes é uma prática recomendada.
no entanto, ao manipular elementos, você não controla como eles são renderizados. removeAttr ('style') é a MELHOR maneira de remover todos os estilos embutidos.
fonte
I modificado de user147767 solução um pouco para torná-lo possível usar
strings
,arrays
eobjects
como entrada:http://jsfiddle.net/ARTsinn/88mJF/
fonte