18-04-2009, 05:35 PM
Ouaip, le ths correspond au this, en fait this se rapporte toujours au « propriétaire » de la fonction. Par exemple, quand tu passe la sourie sur ton lien il appelle la fonction tips. Alors this correspond à la balise qui appelle tips (ici ton lien), un peu comme si tu fessais document.getElementsByTagName("a")[numero_de_mon_lien].
Le jQuery(ths) sélectionne ton lien avec jQuery pour faire les traitement dessus.
Le moveHandler c'est le principe des variables fonctions (je sais pas si ça à un nom), mais ça consiste à créé une variable qui ce comporte comme une fonction. si je fait moveHandler() il va l'exécuter comme si c'était une fonction.
La fonction que tu donne au mousemove dans le début de ton script, t'aurait très bien pu la passé par une variable fonction.
Quand à bind, c'est une méthode qui permet de rajouter des actions.
Quand je bouge ma sourie je lance moveHandler. Et quand je quitte le lien, j'enlève moveHandler. Pareil avec outHandler.
Autre exemple
Un truc qui est pas dit dans la doc que je t'es montré, c'est qu'avec bind (et d'autre j'imagine) tu peux mettre plusieurs événement en même temps :
Le jQuery(ths) sélectionne ton lien avec jQuery pour faire les traitement dessus.
Le moveHandler c'est le principe des variables fonctions (je sais pas si ça à un nom), mais ça consiste à créé une variable qui ce comporte comme une fonction. si je fait moveHandler() il va l'exécuter comme si c'était une fonction.
La fonction que tu donne au mousemove dans le début de ton script, t'aurait très bien pu la passé par une variable fonction.
//principe des fonctions anonymes
$().mousemove(function(e){
sourisLeft = e.pageX;
sourisTop = e.pageY;
});
//revient à faire
//variable fonction
maFonc = function(e){
sourisLeft = e.pageX;
sourisTop = e.pageY;
};
$().mousemove(maFonc);
Quand à bind, c'est une méthode qui permet de rajouter des actions.
Quand je bouge ma sourie je lance moveHandler. Et quand je quitte le lien, j'enlève moveHandler. Pareil avec outHandler.
//je pointe sur le lien où est la sourie
jQuery(ths)
//à chaque fois que la sourie bouge, j'exécute moveHandler
.bind('mousemove', moveHandler)
//quand je quitte le lien, j'exécute outHandler qui va enlever les actions
.bind('mouseout',outHandler);
//on aurait très bien pu faire
jQuery(ths)
.mousemove(moveHandler)
.mouseout(upHandler);
Mais je préférée avec bind pour ce cas, vu que qu'après y a un unbind je trouve ça plus homogène ^.^Autre exemple
$().mousemove(function(e){
sourisLeft = e.pageX;
sourisTop = e.pageY;
});
//équivalent à :
$().bind("mousemove", function(e){
sourisLeft = e.pageX;
sourisTop = e.pageY;
});
Dans ce code, aucun moyen de détacher la fonction avec unbind (à moins de faire le bourrin et de détacher toute les fonctions attacher à mousemove). Pour ça que dans le code que je t'ai passé je passe une variable fonction en paramètre dans bind, pour pouvoir la détacher avec unbind sans enlever les probables autres fonctions attaché à mousemove.Un truc qui est pas dit dans la doc que je t'es montré, c'est qu'avec bind (et d'autre j'imagine) tu peux mettre plusieurs événement en même temps :
$().bind("mousemove | click", myfonc)
//au lieu de
$().mousemove(myfonc).click(myfonc)
Faudrait que je trouve une doc française plus récente ^.^