Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/03/2016, 20:20
Avatar de eduardobrutaldeath
eduardobrutaldeath
 
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 11 años, 3 meses
Puntos: 3
Respuesta: Anular efecto Hover al hacer click en un botón

Cita:
Iniciado por Alexis88 Ver Mensaje
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

Estoy comparando y tratando de comprender qué hizo la diferencia, por qué tu condición sí funcionó y la mía no.
Como sea, te agradezco por tomarte un tiempo para resolver mi problema.
Chau, y otra vez gracias.