Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2011, 17h50   #1
Membre du Club
 
Homme
Étudiant
Inscription : mars 2011
Messages : 136
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 136
Points : 51
Points : 51
Par défaut attribuer dynamiquement une fonction avec parametre variable dans un onclick

J’écris ce post parce que j'ai cherché la solution pendant longtemps et j'ai lu sur le forum des reponses qui peuvent induire en erreur.

Code javascript :
1
2
3
4
5
6
7
8
9
var liens = elm.getElementsByTagName("a");
			var lien;
			for (var i = 0; i < liens.length; i++) {
				lien = liens[i];
				if (lien.onclick) {
					lien.onclick = function () { arbreOrphelins.select(lien.id); };
					lien.setAttribute('onclick', function () { arbreOrphelins.select(lien.id); });
				}
			}

Voilà le code que j'ai et il y a deux problèmes :
* Javascript considère lien.id comme une chaine de caractère et ne l'evalue.
* Quand je remplace ma fonction par une fonction avec un parametre non variable (comme dans le setAttribute) ça change l'ecriture du onclick dans firebug j'ai bien onclick=function().... mais ça marche pas.

En fait il suffit de faire
Code javascript :
lien.setAttribute('onclick',  "arbreOrphelins.select("+lien.id+");");

Voilà !
ernestrenan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 18h56   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 069
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 069
Points : 45 202
Points : 45 202
Code :
1
2
lien.onclick = function () { arbreOrphelins.select(this.id); };
					lien.setAttribute('onclick', function () { arbreOrphelins.select(this.id); });
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 19h03   #3
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
ben oui;

et puis je trouve un peu lourd le fait de redéfinir une variable lien plutôt que de profiter de la boucle
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h18.


 
 
 
 
Partenaires

Hébergement Web