Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/08/2015, 17:19
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: No funciona eventos .hover() y .click() de pagina cargada mediante $.ajax

No funciona porque .hover() es un método y no un evento, por eso no ocurre nada al colocar .on("hover"). Lo que debes de hacer es añadir los nuevos elementos a un contenedor, por ejemplo, un <div>, delegarle a este los eventos mouseover y mouseout y mediante la propiedad target del objeto del evento (event), tomar al elemento sobre el cual se está produciendo el evento, verificamos si posee la clase que hayamos asignado a los nuevos elementos y si es así, ejecutamos las instrucciones.

Código Javascript:
Ver original
  1. $("#id del contenedor")
  2.     .on("mouseover", function(event){
  3.         if (event.target.className == "foo"){
  4.             $(event.target).css("background", "red");
  5.         }
  6.     })
  7.     .on("mouseout", function(event){
  8.         if (event.target.className == "foo"){
  9.             $(event.target).css("background", "");
  10.         }
  11.     });

También puedes registrar ambos eventos a la vez y mediante la propiedad type del objeto del evento, detectas cuál de estos se produjo.

Código Javascript:
Ver original
  1. $("#id del contenedor")
  2.     .on("mouseover mouseout", function(event){
  3.         if (event.type == "mouseover" && event.target.className == "foo"){
  4.             $(event.target).css("background", "red");
  5.         }
  6.  
  7.         if (event.type == "mouseout" && event.target.className == "foo"){
  8.             $(event.target).css("background", "");
  9.         }
  10.     });

Ambas formas te pueden servir para trabajar con otros eventos.

Saludos
__________________
«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

Última edición por Alexis88; 12/08/2015 a las 17:46 Razón: Otra forma