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

thaBIGBOSS 5 Messages postés mercredi 14 mars 2007Date d'inscription 16 août 2011 Dernière intervention - 26 juil. 2011 à 18:37 - Dernière réponse : thaBIGBOSS 5 Messages postés mercredi 14 mars 2007Date d'inscription 16 août 2011 Dernière intervention
- 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 ...
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
dvwyns 160 Messages postés mardi 2 janvier 2007Date d'inscription 7 mai 2012 Dernière intervention - 14 août 2011 à 13:41
3
Merci
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.

Merci dvwyns 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de dvwyns
Meilleure réponse
thaBIGBOSS 5 Messages postés mercredi 14 mars 2007Date d'inscription 16 août 2011 Dernière intervention - 16 août 2011 à 16:36
3
Merci
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.

Merci thaBIGBOSS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de thaBIGBOSS
mikeyjoy 28 Messages postés dimanche 3 avril 2011Date d'inscription 8 août 2011 Dernière intervention - 26 juil. 2011 à 20:36
0
Merci
Salut thaBIGBOSS,
...et en chargeant le jquery-cp.js avant le fichier.js, ça ne marche pas mieux ?
Commenter la réponse de mikeyjoy
thaBIGBOSS 5 Messages postés mercredi 14 mars 2007Date d'inscription 16 août 2011 Dernière intervention - 26 juil. 2011 à 20:39
0
Merci
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é
Commenter la réponse de thaBIGBOSS
dvwyns 160 Messages postés mardi 2 janvier 2007Date d'inscription 7 mai 2012 Dernière intervention - 3 août 2011 à 13:36
0
Merci
Et si tu remplaçait "document.getElementById('res').innerHTML" par la variante jquery
$('#res').html(content);
Commenter la réponse de dvwyns
dvwyns 160 Messages postés mardi 2 janvier 2007Date d'inscription 7 mai 2012 Dernière intervention - 3 août 2011 à 13:42
0
Merci
Comme tu dois rajouter et non remplacer, essaies plutot ça
$('#res').append(content);
Commenter la réponse de dvwyns
thaBIGBOSS 5 Messages postés mercredi 14 mars 2007Date d'inscription 16 août 2011 Dernière intervention - 12 août 2011 à 19:31
0
Merci
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
Commenter la réponse de thaBIGBOSS
dvwyns 160 Messages postés mardi 2 janvier 2007Date d'inscription 7 mai 2012 Dernière intervention - 16 août 2011 à 16:51
0
Merci
Salut,
Oui, effectivement, il faut des id unique, je pense que firefox accepte mais IE non.

Content d'avoir pu t'aider

Cordialement
Commenter la réponse de dvwyns
thaBIGBOSS 5 Messages postés mercredi 14 mars 2007Date d'inscription 16 août 2011 Dernière intervention - 16 août 2011 à 16:54
0
Merci
Je vous remercie encore pour votre aide.

cordialement;
Commenter la réponse de thaBIGBOSS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.