Probleme de génération automatique de code jquery [Résolu]

Signaler
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011
-
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011
-
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

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

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.
Messages postés
5
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
16 août 2011

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.
Messages postés
28
Date d'inscription
dimanche 3 avril 2011
Statut
Membre
Dernière intervention
8 août 2011

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

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é
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

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

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

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
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

Salut,
Oui, effectivement, il faut des id unique, je pense que firefox accepte mais IE non.

Content d'avoir pu t'aider

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

Je vous remercie encore pour votre aide.

cordialement;