Probleme de génération automatique de code jquery

Résolu
thaBIGBOSS
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011
- 26 juil. 2011 à 18:37
thaBIGBOSS
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011
- 16 août 2011 à 16:54
Bonjours tous le monde;
j'ai un problème lors de génération d'un code script manipulant JQuery
Le fichier appelant est index.php

<script language="Javascript" src="fichier.js" type="text/javascript"></script>
<script language="Javascript" src="jquery-cp.js" type="text/javascript"></script>



 


Le fichier de manipulation et de génération auto contient cette fonction

function Affiche_u_result(total,titre,detail,id){
document.getElementById('res').innerHTML += "
<center>

"+titre+"
</center>, "+detail+", <center>" +total+"€</center>

"    ;
document.getElementById('resq').innerHTML +=     '<script language="javascript" type="text/javascript"> $(document).ready(function() { $("#'+id+'_link").click(function(){ $("#'+id+'a").slideToggle("Normal"); }) });</script>[javascript:; voir plus ]
'+detail+'

';
}


La fonction génère le tableau et aussi les liens "voir plus"
en cliquant sur ce lien rien ne se passe
alors qu'en copiant le code généré en utilisant firebug et je le met direct sur le html il fonctionne nickel.

Est ce que quelq'un pourra m'aider SVP ...

9 réponses

dvwyns
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

14 août 2011 à 13:41
Essaies ça
document.getElementById('resq').innerHTML +=     '<script language="javascript" type="text/javascript">$("#'+id+'_link").live('click',function(){ $("#'+id+'a").slideToggle("Normal"); });</script>[javascript:; voir plus ]
'+detail+'



J'ai enlevé la fonction ready pcq elle n'est utile que lorsque la page charge
la fonction live permet de lier un évenement géneré dynamiquement.
3
thaBIGBOSS
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011

16 août 2011 à 16:36
Merci beaucoup dvwyns vous m’aviez bien aidé pour résoudre mon problème
Il y avait juste quelques trucs à traiter et et la solution est complète:

i++;
var valeur= '<script>$("#'+id+i+'_link").live("click",function(){ $("#'+id+i+'a").slideToggle("Normal"); });</script>[javascript:; voir plus ]
'+detail+'
</td></tr></table>
</center>'    ;
$('#res').append(valeur);


avec i une variable incrémentale pour éviter toute confusion lors de la génération de divs ayant un identifiant identique.
3
mikeyjoy
Messages postés
28
Date d'inscription
dimanche 3 avril 2011
Statut
Membre
Dernière intervention
8 août 2011

26 juil. 2011 à 20:36
Salut thaBIGBOSS,
...et en chargeant le jquery-cp.js avant le fichier.js, ça ne marche pas mieux ?
0
thaBIGBOSS
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011

26 juil. 2011 à 20:39
Non du tout! ca ne change rien
le code généré marche nickel si je le copie / colle dans le html direct mais ca marche pas pour une raison inconnue lorse qu'il est généré
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dvwyns
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

3 août 2011 à 13:36
Et si tu remplaçait "document.getElementById('res').innerHTML" par la variante jquery
$('#res').html(content);
0
dvwyns
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

3 août 2011 à 13:42
Comme tu dois rajouter et non remplacer, essaies plutot ça
$('#res').append(content);
0
thaBIGBOSS
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011

12 août 2011 à 19:31
Le résultat est le même; y a une insertion comme avec le inner HTML mais lorsque je clique dessus rien ne se passe...
J'arrive toujours pas à comprendre pourquoi ça ne marche pas
PFFFF
0
dvwyns
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

16 août 2011 à 16:51
Salut,
Oui, effectivement, il faut des id unique, je pense que firefox accepte mais IE non.

Content d'avoir pu t'aider

Cordialement
0
thaBIGBOSS
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011

16 août 2011 à 16:54
Je vous remercie encore pour votre aide.

cordialement;
0