Probleme de scope en jQuery. je conprend pas,

Résolu/Fermé
border - Modifié par zipe31 le 6/08/2014 à 06:38
 border - 6 août 2014 à 13:22
Bonsoir,

le premier console.log possede les valeurs mais le 2e retourne un array vide. Je sait que c'est un probleme de scope mais je ne conprend pas pourquoi et je sait pas comment le contourner.

    
hover_popup_obj={};
hover_popup_obj.cur_pos = [];
hover_popup_obj.popup = jQuery('#element_to_pop_up');

jQuery(e).mousemove( function(e){
hover_popup_obj.cur_pos = [ e.pageY, e.pageX ];
console.log(hover_popup_obj.cur_pos);
});

console.log(hover_popup_obj.cur_pos );



Merci d'avance.

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 août 2014 à 07:49
Bonjour,

Ce n'est pas un problème de scope, mais de synchronisme.

Le premier console.log est exécuté dans la fonction lorsque tu as un mouvement de la souris, dans ce cas tu as bien modifiée la valeur cur_pos = [ e.pageY, e.pageX ];

Mais avant le premier mouvement de la souris, à l'initialisation, tu as cur_pos = [];
C'est cette valeur qui est affichée dans le deuxième console.log, puisqu'il suit directement la déclaration, bien avant le premier mouvement de la souris.
1
Je conprend , MERCI !
0