begin process at 2012 05 29 01:55:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Javascript et ActiveX

 > 

Autre

 > 

ajout d'un onclick par code


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ajout d'un onclick par code

dimanche 8 juillet 2007 à 14:33:41 | ajout d'un onclick par code

taillecrayon

Bonjour, voila un petit pb que je n'arrive pas à résoudre : debut() est éxécuté au chargement et doit ajouter aux div id "a1" et "a2" un prog essai(1) et essai(2) or pour les deux il ajoute essai(2)
var tab=new Array(1,2)
 function debut()
{for(var i=0;i<=1;i++)
{qui="a" + tab[i]
 x=tab[i]
document.getElementById(qui).onclick=function(){essai(x)} } }
 function essai(x) {alert(x) }
 Merci si on peut m'expliquer. taillecrayon
dimanche 8 juillet 2007 à 20:58:18 | Re : ajout d'un onclick par code

Kysic

Membre Club
Salut, j'ai compris le problème mais j'ai pas la solution.
En fait ton programme ecrit essai(x) pour les deux (il n'évalue pas x quand il l'écrit).
Si j'amais tu fais un x="salut" après, tu verra salut quand tu cliquera sur n'importe lequel des boutons.
Pour résoudre le problème il faudrait donc le forcer à évaluer x, mais là j'ai jamais fait.
Si je trouve je reposte.
lundi 9 juillet 2007 à 04:52:53 | Re : ajout d'un onclick par code

Arto_8000

Réponse acceptée !
La fonction eval serait la solution pour se genre de problème.

function debut()
{
    for(var i=0;i<=1;i++)
    {
        qui="a" + tab[i];
        x=tab[i];
        eval("document.getElementById(qui).onclick=function(){essai(" + x + ")}");
    }
}
lundi 9 juillet 2007 à 12:32:28 | Re : ajout d'un onclick par code

taillecrayon

Merci de vos réponses, ça marche, mais j'aurais bien voulu savoir comment "fonctionne cette erreur" car le x de essai(x) a bien une valeur pour chaque x de la boucle mais le même : celui obtenu dans la dernière boucle!

taillecrayon
lundi 9 juillet 2007 à 12:55:14 | Re : ajout d'un onclick par code

Kysic

Membre Club

C'est ce que j'ai essayer de t'expliquer, en fait ça fait comme si tu avait:
var tab=new Array(1,2)
for(var i=0;i<=1;i++)  {
 qui="a" + tab[i]
 x=tab[i]
}
function essai(x) {alert(x) }

puis:
<input type="button" id="a1" value="A1" onclick="essai(x)">
<input type="button" id="a2" value="A2" onclick="essai(x)">

au lieu de
<input type="button" id="a1" value="A1" onclick="essai(1)">
<input type="button" id="a2" value="A2" onclick="essai(2)">

alors ta fonction est appelée avec la dernière valeur de x (c'est à dire 2)
en faisant comme là indiqué Arto_8000, ce n'est pas x qui est dans la fonction mais sa valeur (il est évalué), donc il n'y a plus de problème.
lundi 9 juillet 2007 à 14:57:03 | Re : ajout d'un onclick par code

taillecrayon

Effectivement Kysic c'est bien comme ça que cela semble se passer mais pourquoi ce "puis" alors que c'est bien à l'intérieur de la boucle que l'on demande de rajouter le onclick

taillecrayon
lundi 9 juillet 2007 à 15:13:55 | Re : ajout d'un onclick par code

Kysic

Membre Club
ah, je suis pas doué pour les explications visiblement,
voilà un petit script pour t'aider à comprendre, là on utilise le fait que l'argument est évalué au moment de l'execution (quand on clique) et non au moment  ou l'on donne les attributs du onclik.
(a chaque fois que l'on clique on voit le nombre de secondes écoulés depuis le début du script).
<input id="a1" type="button" value="Secondes">
<script language="javascript" type="text/javascript">
var secondes = 0;
function message(x) { alert(x) }
function augmenteSecondes () {
    secondes++;
    setTimeout ("augmenteSecondes()",1000);
}
setTimeout ("augmenteSecondes()",1000);
document.getElementById("a1").onclick=function() { message(secondes); }
</script>
mardi 10 juillet 2007 à 13:08:09 | Re : ajout d'un onclick par code

taillecrayon

Ok, merci, avec ta dernière explication tout est clair. Salut

taillecrayon


Cette discussion est classée dans : function, tab, essai, ajout, onclick


Répondre à ce message

Sujets en rapport avec ce message

pb de paramètre avec function(){mafonct(variable);} [ par sapakus ] Bonjour,Dans une boucle for, j'affecte à des cellules fraichement créées, une fonction pour l'évenement onclick :for(i=0<FONT col Probleme sur onclick [ par eddie5150 ] Bonjour à tous,voila j'ai un probleme bizarre,lorsque je fait ceci :for(var i=0;i!=3;i++){    var td = tr.insertCell(-1);    td.onclick = function() { el.onclick = function([param]){}; [ par xactise ] Bonjour à tous. je vous expose mon problème. J'intéroge une base de donnée avec ajax, je récupère les donnée souhaité au format JSON, et j'utilise c onclick desactiver la fonction onemouseover [ par demnatis ] Bonjour a tous,je n'ai trouvé rien de precis concernant le script que je souhaite réaliser: ni sur ce site, ni sur google.Je cherche a desactiver la f changement de l'évènenement onclick [ par bernidupont ] Bonsoir à tous, savez vous comment change t on la valeur d'un bouton par exemple qui possède la valeur onclick? voici un exemple très simple d'una pa Menu déroulant / javascript [ par arkelode ] Bonjour, J'ai réalisé un petit menu déroulant à l'aide de "J Query" en javascript mais voilà mon problème-> Quand je clic sur un lien du "submenu" m Textarea dans un tableau [ par YURIX ] Bonjour, Je viens d' écrire une fonction basique en javascript qui permet de modifier un textarea : onClick='document.forms.products_description.val formulaire onclick + mise a jour valeur php? [ par Dav_c ] Bonjour, j'utilise les sessions en php et j'ai ajouter un bout de code pour deconnecter l'utilisateur après x minute. Donc j'aimerais pouvoir remettr 2 défilements d'images dont un qui reste figé [ par Sweety521 ] Bonjour, je souhaite réalisé deux défilements d'images de partenaires. J'ai bien les 2 barres que je souhaite mais le souci c'est qu'il y en un qui r Javascript ne fonctionne pas sur IE + Firefox [ par jbduzan ] Bonjour a tous, J'ai fais un rapide script en js, pour cacher ou afficher une div quand on clique sur un bouton. Ce script fonctionne très bien sur C


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales