Re: [LA-discussions] JS : affectation de variable directement dans le onclick

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]


Le lundi 16 septembre 2013 09:53:01 Julien MUETTON a écrit :
> Salut,
> 
> Je te proposerai bien de lire [eloquent javascript](
> http://fr.eloquentjavascript.net/), qui reprends depuis les bases.

Ha intéressant je regarderai

> Sinon, pour ton problème actuel, il peut y avoir un problème de 
scope en
> effet, et pour que la variable soit globale, il suffit de ne *pas* 
mettre
> var devant.

oui je sais mais ça suffit pas

> A la place des variables, tu peux aussi utiliser un concept
> révolutionnaire: les paramètres de fonction ;)
> 
> ``` javascript
> function doSomething(toto) {
> }
> ```

MMmmm ? Je vais regarder ça aussi.

> et dans ton onclick (qui au passage ne devrait pas être utilisé)

Le clic ne sert pas à calculer la carte, c'est juste un lien bidon 
qui contient un div display none et qui devient display block quand 
le lien est cliqué, c'est juste une popup pur css. Alors comme il 
faut cliquer là-dessus pour que la carte devienne visible, je trouve 
ça tentant de profiter de l'occasion pour dire au code js plus bas 
de prendre telles ou telles coordonnées, puisque je peux avoir 
jusqu'à 6 localités à afficher dans la carte.

> tu fais un
> appel doSomething(12).
> Tu devrais utiliser jquery ou au moins une lib/bout de code dédié 
pour
> attacher des événements au DOM.

quand je peux me passer de ce genre d'usine à gaz je préfère, ça 
fout le bazar partout. Et puis si je fais ça c'est aussi pour 
apprendre à le faire moi mm, pas pour mettre un truc qui va me faire 
tout tout seul et d'autres trucs en plus dont je ne veux pas.

> Autre chose, n'oublie pas que ta page est chargée (donc le code 
inline
> exécuté) puis à un autre moment, ton script "onclick" est exécuté, 
mais
> rien d'autre de ta page n'est exécutée à ce moment là.

oui oui je sais ça aussi.

comme c'est un truc que je suis en train de construire j'y vais par 
étapes, je commence par écrire en statique puis une fois que ça me 
plait je remplace les données en dur par des arrays php, ce sera ça 
la source de toutes les infos.

Donc j'ai un array Places qui contient le nom et les coordonnées des 
villes à afficher en tête de fichier. Ensuite du html pour le corps 
de la page, et tout en bas un include php pour aller chercher le 
html qui met en place la carte (tout le tralala div/span etc avec 
les bons id) et le script js qui calcule la carte, dans lequel 
j'injecte à grand coup d'echo php les données nécessaires.

Donc ma problématique est la suivante : faire comprendre au js qui 
calcule la carte qu'il doit prendre tel lieu ou tel autre dans 
l'array. Et de préférence sans recharger la page. J'ai essayé 
d'encapsuler le code de fabrication de la carte dans une fonction 
mais ça ne marche pas.

Ha rectificatif je viens de refaire un essai et on dirait que ça y 
est... Je vais revoir tout ça pour vérifier que ce n'est pas du code 
en dur qui traine encore dans un coin qui fait le boulot et non ma 
fonction mais on dirait que ça y est...

Ha non pas tout à fait : si je clique sur le lien pour créer la 
carte, ça marche. Je referme la carte et je clique sur le lien pour 
en créer une autre, ça me remet la mm... Il faut que je recharge la 
page pour pouvoir avoir une nouvelle carte qd je clique sur un autre 
lien, mais alors de nouveau toutes les cartes osnt identiques...

Pourtant aucune variable n'est globale, le code ne se trouve que 
dans la fonction que j'appelle, et les param-tres passés sont bons 
puisque ça marche après rechargement. C'est normal que la mémoire se 
vide pas ?

-- 
Cordialement, Daniel Cartron
« Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le 
communisme, c'est le contraire. »
Arthur Koestler

--
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/