Foros del Web » Programando para Internet » Jquery »

Jquery - Problema con live() y callback

Estas en el tema de Jquery - Problema con live() y callback en el foro de Jquery en Foros del Web. Hola!! Llevo dos días peleándome con un código, espero me puedan ayudar. Quiero simplemente mostrar un div oculto al hacer hover en otra capa. La ...
  #1 (permalink)  
Antiguo 03/04/2011, 04:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 36
Antigüedad: 14 años, 9 meses
Puntos: 0
Jquery - Problema con live() y callback

Hola!!

Llevo dos días peleándome con un código, espero me puedan ayudar. Quiero simplemente mostrar un div oculto al hacer hover en otra capa. La cuestión es que es un calendario en Ajax, por lo que nuevos elementos se añaden al DOM, y es por eso que utilizo live() y es ahí donde surge el problema, ya que cuando añado ese método deja de funcionar bien, y se entremezclan los dos eventos...

Añado código:

Código HTML:
<script type="text/javascript">
$(document).ready(function()
{



   $('.Event').live('hover', function() {

      $('.tip', this).fadeIn('slow');
      return true;
 });

   $('.Event').live('mouseout', function() {

      $('.tip', this).fadeOut('slow');
      return false;
 });


/*
ESTE FUNCIONA PERO SIN UTILIZAR live()
 */

     $('.Event').hover(function() {
      $('.tip', this).fadeIn('slow');
      return false;
    },
  function() {
      $('.tip', this).fadeOut('slow');
      return false;  
    });



});
</script> 

Gracias!!
  #2 (permalink)  
Antiguo 03/04/2011, 04:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Tema movido desde javascript
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 03/04/2011, 18:42
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 19 años
Puntos: 87
Respuesta: Jquery - Problema con live() y callback

No existe un evento llamado "hover"; hover es solo una funcion de jquery; lo que estas buscando es "mouseover"

Código:
$('.Event').live('mouseover', function() {

      $('.tip', this).fadeIn('slow');
      return true;
 }).live('mouseout', function() {

      $('.tip', this).fadeOut('slow');
      return false;
 });
  #4 (permalink)  
Antiguo 04/04/2011, 01:30
 
Fecha de Ingreso: febrero-2010
Mensajes: 36
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Jquery - Problema con live() y callback

Hey Inkar, he probado tu código, pero me sigue haciendo el efecto parpadeo, se va y aparece constantemente... es un misterio este código, no entiendo porque lo hace. Sin el live() si que funciona bien. La verdad es que no le veo la lógica...


Cita:
Iniciado por InKarC Ver Mensaje
No existe un evento llamado "hover"; hover es solo una funcion de jquery; lo que estas buscando es "mouseover"

Código:
$('.Event').live('mouseover', function() {

      $('.tip', this).fadeIn('slow');
      return true;
 }).live('mouseout', function() {

      $('.tip', this).fadeOut('slow');
      return false;
 });
  #5 (permalink)  
Antiguo 04/04/2011, 03:06
 
Fecha de Ingreso: febrero-2010
Mensajes: 36
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Jquery - Problema con live() y callback

Bueno, tras "googlear" durante dos días por fin encontré la solución, y la dejo aquí por si a alguien le pasa lo mismo. El problema radica en los eventos mouseover y mouseout ya que estos dos eventos no pasan el evento desde un "hijo" a un "padre". Es decir, si tienes dos elementos, un padre y un hijo, desde el padre se pasará el evento sin problema al hijo, pero no al revés. En su lugar hay que utilizar mouseenter y mouseleave.

Lo encontré aquí:

http://jquery-howto.blogspot.com/2009/04/problems-with-jquery-mouseover-mouseout.html

Etiquetas: javascript, live
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:19.