Probleme de scope en jQuery. je conprend pas,

Résolu
border -  
 border -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
border
 
Je conprend , MERCI !
0