Soy nuevo en jQuery y he estado investigando y jugando con él tanto como sea posible. Mi problema se está agotando. Necesito hacer este proyecto lo antes posible. De todos modos mi pregunta ...

Cuando hago clic en un enlace, se llama a una función jquery ajax que funciona correctamente ... una vez que tenga éxito, quiero que el código cambie el color de fondo de un div, pero esto depende de su color actual, ya que se puede alternar entre ellos. dos colores ...

De todos modos aquí está con la que he estado jugando ...

highlightColor = "#d8fe00"; //Updated to not cause confusion...
whiteColor = "#ffffff"; //Updated to not cause confusion...

$("input[value*='" + cId + "']").closest("div[class*='link-black']").attr("background-color", function(iPos, color) {
if(color != highlightColor) { return highlightColor; }
else { return whiteColor; }
}

Cualquier ayuda sería apreciada gracias de antemano!

1
Lord-Link 30 jul. 2011 a las 22:02

3 respuestas

La mejor respuesta

Considere usar .toggleClass en su lugar:

CSS:

.highlight { background-color: 'yellow'; }

JS:

$("#selector").toggleClass("highlight");
1
Andrew Whitaker 30 jul. 2011 a las 18:10
.classOne { color: red; }
.classTwo { color: blue; }
.classThree { color: green; }

.classOne.highlighted { background-color: white; }
.classTwo.highlighted { background-color: black; }
.classThree.highlighted { background-color: purple; }

En la devolución de llamada AJAX, todo lo que tiene que hacer es agregar la clase "resaltada" a su elemento. Puede dejar que el CSS descubra de qué color es el texto y de qué color debe ser el fondo. Sin embargo, las clases obviamente deberían ser más descriptivas que classOne.

0
Dennis 30 jul. 2011 a las 18:17

¿Qué tal el estilo no con javascript y aprovechar el buen CSS antiguo?

CSS

.white { background-color: white; }
.white.highlight { background-color: yellow; }
.red { background-color: red; }
.red.highlight { background-color: pink; }

JS

 $("input[value*='" + cId + "']").closest("div[class*='link-black']").toggleClass('highlight');
1
Philip Ramirez 30 jul. 2011 a las 18:18