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