Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/03/2016, 22:32
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Anular efecto Hover al hacer click en un botón

El problema no es el establecimiento de la clase sino la lógica que estás aplicando.

Esto puede ayudarte mucho:
Código Javascript:
Ver original
  1. $("div").on("click", function(){
  2.     $(this).toggleClass("clase");
  3.     if ($(this).hasClass("clase")){
  4.         $(this).css("background", "red");
  5.     }
  6.     else{
  7.         $(this).css("background", "white");
  8.     }
  9. }).hover(function(){
  10.     if (!$(this).hasClass("clase")){
  11.         $(this).css("background", "black");
  12.     }
  13. }, function(){
  14.     if (!$(this).hasClass("clase")){
  15.         $(this).css("background", "white");
  16.     }
  17. });

Cuando le des un clic al elemento, se añadirá o quitará la clase; además, se comprobará que este posea dicha clase. En caso de tenerla, se cambiará su color de fondo a rojo; de lo contrario, se establecerá al color blanco como nuevo color de fondo del elemento.

Cuando se pose el cursor del ratón sobre el elemento, se comprobará si el elemento no posee la clase; de ser así, se cambiará su color de fondo a negro, y cuando se retire el cursor del elemento, si este no posee la clase, se le cambiará el color de fondo por el blanco.

DEMO

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand