[résolu] pb fonctions javascript

pb fonctions javascript [résolu] - HTML/CSS - Programmation

Marsh Posté le 16-08-2008 à 16:54:16    

Bonjour,
 
C'est sûrement une erreur bête que je ne vois pas mais je ne m'en sors pas depuis le début de cet après-midi.
Dans ma page html j'inclus dans le head mon fichier .js dans lequel il y a :
 

Code :
  1. function chgSeq(indice) {
  2. alert(indice);
  3. }
  4. function affiche() {
  5. for(var i=0 ; i<seq.length ; i++) {
  6.  document.write(
  7.   '<span '+
  8.   'style="font-family:Comic Sans MS; font-size:20pt; color:\'blue\';" '+
  9.   'onclick="alert(12345); chgSeq('+list[i]+');" '+
  10.   '>'+
  11.   seq[list[i]]+
  12.   '</span>'
  13.  );
  14. }
  15. }


 
(les array seq et list sont bien définis un peu avant en global)
 
L'affichage est bon, mais pas le onclick : l'alerte 12345 se fait bien, mais pas l'alerte de l'indice  :(  Je ne comprends pas... il a l'air de pas trouver la fonction  :??:  
 
Est-ce que quelqu'un saurait me dire pourquoi ? Que changer ? (Je sens le truc trop con mais je vois pas =P)

Message cité 1 fois
Message édité par bizu53 le 18-08-2008 à 12:58:36
Reply

Marsh Posté le 16-08-2008 à 16:54:16   

Reply

Marsh Posté le 16-08-2008 à 21:25:18    

j ai juste un debut de reponse parce que je comprends pas tout
chgSeq('+list[i]+');  
ici tu transformes list[i] en string (et non pas le resultat de list[i])
donc meme si ca fonctionnait dans l alert tu aurais ce message +list[i]+
et quelque chose me dit que c est pas ce que tu cherches si ?


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 17-08-2008 à 00:08:05    

mIRROR a écrit :

j ai juste un debut de reponse parce que je comprends pas tout
chgSeq('+list[i]+');  
ici tu transformes list[i] en string (et non pas le resultat de list[i])
donc meme si ca fonctionnait dans l alert tu aurais ce message +list[i]+
et quelque chose me dit que c est pas ce que tu cherches si ?


 
bin non le list[i] est bien en dehors des cotes, et les '+' concatènent... donc le document.write() écrit bien le chgSeq() contenant le nombre correspondant à list[i]. (Et même si ça avait été le cas, je m'en serais rendu compte par le 2ème alert())
 
J'ai même testé ça, ça ne passe pas non plus (le 12345 oui mais pas le 54321) :

Code :
  1. function chgSeq() {
  2.   alert(54321);
  3. }
  4. function affiche() {
  5.   for(var i=0 ; i<seq.length ; i++) {
  6.     document.write(
  7.     '<span '+
  8.     'style="font-family:Comic Sans MS; font-size:20pt; color:\'blue\';" '+
  9.     'onclick="alert(12345); chgSeq();" '+
  10.     '>'+
  11.     seq[list[i]]+
  12.     '</span>'
  13.     );
  14.   }
  15. }


 
(Et je n'ai que ce fichier .js ..il n'y a pas plusieurs fonctions chgSeq() ni de bêtise comme ça)
Je n'ai pas la moindre idée du pourquoi ça ne passe pas :s

Reply

Marsh Posté le 17-08-2008 à 00:27:45    

si l'alerte de l'indice ne se fait pas c'est que tu as une grosse erreur JS
 
tu es prié d'utiliser firebug pour debugger et coder sous firefox dans un premier temps
ensuite colle le code JS de seq et list (enfin leur déclaration je veux dire)

Reply

Marsh Posté le 17-08-2008 à 12:59:36    

gatsu35 a écrit :

si l'alerte de l'indice ne se fait pas c'est que tu as une grosse erreur JS
 
tu es prié d'utiliser firebug pour debugger et coder sous firefox dans un premier temps
ensuite colle le code JS de seq et list (enfin leur déclaration je veux dire)


 
Ok, je pensais que c'était encore une erreur bête. Je vais faire ça alors.
Merci

Reply

Marsh Posté le 17-08-2008 à 13:19:41    

Bon.. c'était une erreur de noob :p
C'est pas un document.write qu'il me faut mais une modification du contenu d'un div qu'il faut que je fasse (Parce que le document.write "refait" une page et donc je perd l'inclusion de mon fichier de scripts)

Reply

Marsh Posté le 17-08-2008 à 14:48:40    

bizu53 a écrit :

Bonjour,
 

Code :
  1. function chgSeq(indice) {
  2.     alert(indice);
  3. }
  4.  
  5. ...


 


 
 [:delarue5] à quoi sert cette fonction ?

Reply

Marsh Posté le 17-08-2008 à 17:26:40    


 
Bin telle que je l'ai mise là à rien.
Dans mon code elle change seq[indice]

Reply

Marsh Posté le 18-08-2008 à 11:26:02    


bonjour,
 
1° on n'a ni seq ni list
    difficle de répondre
 
néanmoins, on fait document.write dans la fonction,
     si cette fonction est exécutée après que la page soit
     totalement interprétée ( sur un onclick par exemple )
     document.write commence par effacer toute la page
     y compris le javascript.
     peut-être rien à voir, mais en définitive : pas
     assez de billes pour répondre correctement je pense.
Cordialement.


---------------
[mon site] [m'écrire]
Reply

Marsh Posté le 18-08-2008 à 12:57:19    

bul3 a écrit :


bonjour,
 
1° on n'a ni seq ni list
    difficle de répondre
 
néanmoins, on fait document.write dans la fonction,
     si cette fonction est exécutée après que la page soit
     totalement interprétée ( sur un onclick par exemple )
     document.write commence par effacer toute la page
     y compris le javascript.
     peut-être rien à voir, mais en définitive : pas
     assez de billes pour répondre correctement je pense.
Cordialement.


 
(Tu as mis un 1° sans mettre de 2°)
1° seq et list ça ne changeait rien que je vous le mette ou non ... (surtout que j'ai quand même dit que ce sont des array alors si c'est pour voir leur déclaration inutile...)
 
2° Je suis désolé mais il y en avait assez, le strict minimum mais assez. Si j'avais su que document.write réécrivait tout le document, avec ces informations j'aurais pu dire que c'est sûrement ça à quelqu'un qui aurait posté ça (si on inversait les rôles). Je n'ai rien dit qui ne servait à rien... après, si vous faites un tri dans ce que je dis, je n'y peux rien et c'est normal que vous allez penser qu'il manque des infos ...
 
J'ai bien dit "Dans ma page html j'inclus dans le head mon fichier .js dans lequel il y a :"
Et on voit bien dans mon code que j'utilise document.write, je dis même que la fonction n'a pas l'air d'être connue...
 
Je me suis mis au js depuis quelques mois (seulement) mais je sais pour autant très très bien cibler un pb, ça ne vous aurait servi à rien d'en avoir plus (si ce n'est vous embêter à vous plonger dans mon code quand l'erreur n'est pas là). J'aurais même pas du vous mettre seq et list ... mais après (comme toujours je vois sur le forum) on m'aurait enquiquiné à me demander l'intérêt de mon code plutôt que de se pencher sur le pb (comme ça a été fait ici d'ailleurs quand même, mais après que mon pb ait été résolu donc "ça va" )
 
(Point n°1 : http://forum.hardware.fr/hfr/Progr [...] #t1654260)


Message édité par bizu53 le 18-08-2008 à 13:21:38
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed