2010-08-29 8 views
3

J'ai un petit problème avec la fonction hover avec mousemove. Mais qu'est-ce qui ne va pas?Jquery - live ('hover') et mousemove

exemple de travail ->http://www.jsfiddle.net/V9Euk/306/

$('.tip').live('hover', function(e) 
{  
    if (e.type == 'mouseover') 
    { 
     $('#'+this.id+' .tooltip').show(); 
    }   
    if (e.type == 'mousemove') 
    { 
     alert('move'); 
     $('#'+this.id+' .tooltip').css({ left: e.pageX + 20, top: e.pageY + 20}); 
    }   
    if (e.type == 'mouseout') 
    { 
     $('.tooltip').hide(); 
    }  
}); 
+0

s'il vous plaît vérifier l'exemple de travail. Il n'a pas démarré le mousemove – Peter

+2

* Petit problème * n'est pas une très bonne description du problème. S'il vous plaît soyez plus précis. –

Répondre

5

Il n'y a aucun événement hover - vous devez inclure place les trois événements que vous avez utilisé, comme ceci:

$('.tip').live('mouseout mousemove mouseover', function(e) 

Voir l'exemple jQuery documentations sur plusieurs événements live():

$('.hoverme').live('mouseover mouseout', function(event) { 
    if (event.type == 'mouseover') { 
    // do something on mouseover 
    } else { 
    // do something on mouseout 
    } 
}); 
+0

Hey Yi Jiang, comme toujours ... Merci beaucoup! Peter (Koh Chang) – Peter

0

Le problème est que hover() cartes à mouseover et `mouseleave), pas les événements que vous utilisez.

$("...").live("hover", function(e) { 
    ... 
}); 

équivaut à:

$("...").live("mouseover mouseleave", function(e) { 
    ... 
}); 

Si vous souhaitez que l'événement mousemove aussi vous pouvez utiliser:

$("...").live("hover mousemove", function(e) { 
    ... 
}); 
+0

c'est en fait mouseleave :) – Marko

0

Hah! Vous avez supprimé la même question avant, juste après que j'allais cliquer sur Poster une réponse.

.hover() ne retournera jamais la souris, elle retournera seulement mouseenter/mouseleave.

Vous devez lier directement à l'événement mousemove, en utilisant

$('.tip').live('mousemove', function(e) { 
    // do stuff here 
});