Ajax et dom avec jquery

cs_moafred Messages postés 2 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 7 juillet 2009 - 17 août 2008 à 19:57
cs_moafred Messages postés 2 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 7 juillet 2009 - 7 juil. 2009 à 16:41
Bonjour,


Mon problème est le suivant:


Je fais appel à la fonction "load" de jQuery pour injecter des éléments html dans un div déjà présent dans le model DOM.

(load( url, data, callback )

Charge un contenu HTML depuis un fichier et l'injecte dans le modèle DOM. )


Le contenu se charge bien est s'affiche, mais le problème c'est que je
ne peux sélectionner avec javascript ces nouveaux éléments, alors qu'il
est spécifier "et l'injecte dans le modèle DOM".

Les éléments que je rajoute vienne d'un fichier php à qui je fais appelle et qui me retourne (en echo) du html.


Si normalement ça marche, je peux donner l'adresse du site en question.


Merci beaucoup :)





<form id="formulaire0" name="formulaire0" action="">





,

,

,

,

----






<textarea rows="20" cols="85" id="message" name="message" style="border: 1px solid rgb(0, 0, 0); background: rgb(238, 238, 238) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Bonjour,
Mon problème est le suivant:
Je fais appel à la fonction "load" de jQuery pour injecter des éléments
html dans un div déjà présent dans le model DOM.
(load( url, data, callback )
Charge un contenu HTML depuis un fichier et l'injecte dans le modèle
DOM. )
Le contenu se charge bien est s'affiche, mais le problème c'est que je
ne peux sélectionner avec javascript ces nouveaux éléments, alors qu'il
est spécifier "et l'injecte dans le modèle DOM".
Les éléments que je rajoute vienne d'un fichier php à qui je fais
appelle et qui me retourne (en echo) du html.
Si normalement ça marche, je peux donner l'adresse du site en question.
Merci beaucoup :)</textarea>





</form>

3 réponses

Utilisateur anonyme
13 sept. 2008 à 15:18
Bonjour,

Je me suis heurté au même problème :

La fonction $(document).ready() ne démarre qu'après le chargement complet de la page. Les éléments ajoutés au DOM après le chargement de la page ne peuvent être joints et donc manipulés.

Une solution consiste à utiliser le plugin "Live Query": celui-ci permet de joindre automatiquement les éléments ajoutés lors des altérations du DOM.

Ainsi, il suffit d'inclure le script
<script src="js/jquery.livequery.js" type="text/javascript"></script>

Puis de modifier les scripts du genre :
$("div#menuCol div.niveauB").hide();
en :
$("div#menuCol div.niveauB").livequery(function(){ $(this).hide(); });

Bonne suite !
0
cs_Lili44300 Messages postés 1 Date d'inscription mercredi 19 novembre 2008 Statut Membre Dernière intervention 19 novembre 2008
19 nov. 2008 à 12:48
Bonjour,

Suivant vos conseils, j'ai ajouté le plugin "Live Query" et modifié mon code mais rien ne se passe ?
Le truc, c'est que dans un premier temps, suite à un rollover, je charge en jQuery un fichier HTML dans ma page Web et depuis ce fichier HTML, en cliquant sur les liens qu'il contient, un nouveau contenu doit apparaître dans la page... mais rien ! :-S

Merci pour votre aide.
Cordialement.

Aurélie Dufour
0
cs_moafred Messages postés 2 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 16:41
Bonjour,

Mon problème est bien celui que tu as mentionné [../auteur/ADENEB/1474434.aspx adeneb], je ne chargais pas le contenu HTML avant.
Pour JQuery je devrait donc creer le HTML et avec le script php changé les valeurs des attributs pour afficher le contenu souhaiter.

Et merci pour livequery ;)
0
Rejoignez-nous