Soy nuevo en JQuery. En mi aplicación tengo lo siguiente:
$("#displayPanel div").live("click", function(){
$(this).css({'background-color' : 'pink', 'font-weight' : 'bolder'});
});
Cuando hago clic en un Div, el color de ese Div cambia. Dentro de esa función Click tengo algunas funcionalidades que hacer. Después de todo lo que quiero eliminar el Css aplicado de la Div. ¿Cómo podría hacerlo en JQuery?
Respuestas:
Coloque sus propiedades CSS en una clase, luego haga algo como esto:
Luego, donde están sus 'otras funcionalidades', haga algo como:
fuente
<div style="xxx"/>
sigue siendo CSS ... no es una muy buena forma de hacerlo, pero funciona.addClass
oremoveClass
oremoveAttr('style')
como en la respuesta de @ ToRrEs.Puede eliminar css específicos que se encuentran en el elemento de esta manera:
Aunque estoy de acuerdo con Karim en que probablemente deberías estar usando clases CSS.
fuente
Puede usar el método removeAttr, si desea eliminar todo el estilo en línea que agregó manualmente con javascript. Es mejor usar clases CSS pero nunca se sabe.
fuente
.css('style-name', 'style-value')
función de jQuery agrega estilos en línea a un elemento, y es esencial para actualizar estilos sobre la marcha. Un script de arrastrar / soltar puede cambiar los estilostop
yleft
de un elemento en una posición absoluta, una instancia en la que no es práctico usar clases.Puede eliminar propiedades en línea de esta manera:
Por ejemplo:
Esto se menciona esencialmente anteriormente, y definitivamente hace el truco.
Por cierto, esto es útil en casos como cuando necesita borrar un estado después de la animación. Claro que podría escribir media docena de clases para lidiar con esto, o podría usar mi clase base y #id hacer algunas matemáticas, y borrar el estilo en línea que aplica la animación.
fuente
O
fuente
Como nota, dependiendo de la propiedad, puede configurarlo en automático.
fuente
Establezca el valor predeterminado, por ejemplo:
$ (this) .css ("altura", "auto");
o en el caso de otras características CSS
$ (this) .css ("altura", "heredar");
fuente
En realidad, la mejor manera que he encontrado para hacer esto cuando tengo que hacer un estilo complejo basado en jquery, por ejemplo, si tiene un modal que necesita mostrar pero necesita calcular los desplazamientos de página para obtener los parámetros correctos en los que deberán ingresar la función a jQuery ("x"). css ({}).
Así que aquí está la configuración de los estilos, la salida de las variables que se han calculado en función de varios factores.
Para borrar esos estilos. en lugar de establecer algo como
La manera simple sería
Cuando jquery manipula elementos en el dom, los estilos se escriben en el elemento en el atributo "estilo" como si estuviera escribiendo los estilos en línea. Todo lo que tiene que hacer es borrar ese atributo y el elemento debe restablecerse a sus estilos originales
Espero que esto ayude
fuente
También tengo el mismo problema, solo elimine el valor
fuente
Si no desea utilizar clases (lo que realmente debería), la única forma de lograr lo que desea es guardar primero los estilos cambiantes:
fuente
Usé la segunda solución de user147767
Sin embargo, hay un error tipográfico aquí. Debería ser
no <= 0
También cambié esta condición para:
ya que a veces agregamos una propiedad css sobre jQuery, y se agrega de una manera diferente para diferentes navegadores (es decir, la propiedad de borde se agregará como "borde" para Firefox y "border-top", "border-bottom", etc. para IE )
fuente
Antes de agregar una clase, debe verificar si ya tenía clase con el método .hasClass ()
Para su pregunta específica Deberías poner tus cosas en una hoja de estilo en cascada. Se recomienda separar el diseño y la funcionalidad.
Por lo tanto, la solución propuesta de agregar y eliminar nombres de clase es la mejor práctica.
sin embargo, cuando manipulas elementos no controlas cómo se representan. removeAttr ('estilo') es la MEJOR forma de eliminar todos los estilos en línea.
fuente
Modifiqué un poco la solución de user147767 para que sea posible su uso
strings
,arrays
yobjects
como entrada:http://jsfiddle.net/ARTsinn/88mJF/
fuente