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

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


Salut,

Je te proposerai bien de lire [eloquent _javascript_](http://fr..eloquentjavascript.net/), qui reprends depuis les bases.
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.

A la place des variables, tu peux aussi utiliser un concept révolutionnaire: les paramètres de fonction ;)

``` _javascript_
function doSomething(toto) {
}
```

et dans ton onclick (qui au passage ne devrait pas être utilisé) 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.

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à.
Un onlick peut prévenir le comportement par défaut du clic sur l'élément, mais si tu ne dit rien, le défaut s'exécute. Si tu changes de page, c'est comme si tu recommençais à zéro, tes variables ne sont pas conservées.

Pas certain que tout soit bien clair, mais il est nécessaire de bien comprendre les concepts quand on manipule une techno. Le web, sous ses airs de simplicité fait intervenir beaucoup de théorie (protocole HTTP, séparation client serveur, autant de langages que de couches...)

Julien.


2013/9/16 Daniel Cartron <dan@xxxxxxxxxxx>
Le lundi 16 septembre 2013 01:17:18 KewlCat a écrit :

Salut,

> C'est une question de "scope". Si tu déclares ta variable
globalement (bloc
> "script" qui fait une déclaration+initialisation dans le head de la
page)
> tu pourras y accéder de partout : onclick sur des éléments de la
page,
> autres blocs "script", événements,...

OK je pige le concept, mais en l'occurence ça va pas être très simple.
C'est relatif à l'inclusion d'une carte openstreet avec le code
leaflet, et pour que ça marche, il faut que le script js se trouve
_après_ le html sinon la carte n'apparait pas (et pour cause, la div
qui doit la recevoir n'est pas encore connu dans ce cas).

Ma carte est située dans une div cachée qui n'apparait que si on
clique sur une icône (pur css) et je voudrais avoir plusieurs cartes
différentes selon le nom de ville sur laquelle je clique, donc il faut
que je transmette en paramètre le nom de la ville et ses coordonnées,
mais quelle que soit la façon dont j'essaye d'écrire ça j'ai une carte
vide, le code n'est apparemment pas au bon endroit.

Je continue à tâtonner mais si qqun a une idée je suis preneur.

--
Cordialement, Daniel Cartron
« L'argent des sots est le patrimoine des gens d'esprit. »
Diderot


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




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