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
Rejoignez-nous