Jquery : page chargée dans un div mais n'est pas dans le source

buster1959 Messages postés 1 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 27 novembre 2008 - 27 nov. 2008 à 00:06
romtrico064649 Messages postés 14 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 1 juillet 2009 - 1 juil. 2009 à 23:21
Bonjour, j'utilise jquery et volà mon problème qui est avant tout un probléme de javascript ou d'ajax (je ne sais pas).

J'ai besoin, après avoir chargé une page (avec load dans jquery) dans un div, de le manipuler (scroll) à partir d'un autre div de la page réceptrice.

Il se trouve que la page chargée (bien visible à l'écran) n'est pas dans le code source - je ne peux donc évidemment pas interagir avec elle.

Comment fait-on pour charger du code html dans une page et qu'il y soit réellement mais pas virtuellement  (donc en dur dans le source) ?

Merci pour votre aide. Cela fait 10 jours que je rame. J'ai épluché tous les forums et tutos, j'ai testé les plugins livequery et autres techniqus du rebind. J'ai vu des pages de super pros, dans lesquelles le code source n'était jamais modifié. Je ne trouve aucun chargement de page ou code html en dur dans la page qui reçoit.

Si quelqu'un a une petite idée, merci beaucoup.

4 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
27 nov. 2008 à 09:19
bonjour,

oublions jquery un instant ( je ne connais pas et à vrai
            dire je ne tiens pas trop à connaitre )

on charge une page html dans un div ( classique d'ajax )
c'est chargé "en dur" comme tu dis, pas virtuellement.

tout ce qui est dans le div ( et la page ) est accessible comme si
       cela y était écrit directement.
       si tu y as un <élément id="toto".../> tu le récupères avec
           document.getElementById("toto"), normalement quoi.
      SI la page chargée l'est depuis le même site, depuis un
           autre site, on ne peut qu'afficher.

jquery ou pas, c'est pareil.

Cordialement

[mon Site][M'écrire]Bul
0
romtrico064649 Messages postés 14 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 1 juillet 2009
30 juin 2009 à 20:34
Bonjour,
J'ai le même problème, je penses, je vais essayer de le reformuler :

Je complète aussi un element html grace à un fichier externe via AJAX. Jusque ici tout va bien, tout fonctionne.
Mais, avec jQuery, j'ai déclaré des actions sur tous les éléments de type
.
Ces action existent et fonctionnent sur les éléments natifs de ma page, ceux qui n'ont pas étés ajoutés dynamiquement via Ajax. En revenche, les éléments
ajoutés depuis mon ajax n'ont aucune interractivité avec Jquery. et ceci car jQuery est initialisé au chargement de la page. Les éléments ajoutés aprés n'ont pas l'air d'être reconnus dans le DOM (que JQuery à déjà lut).
Comment faire pour que JQuery prenne en compte de nouveaux éléments créés à la volé?

Si quelqu'un à une réponse, je suis preneur. Merci

RomTrico
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
1 juil. 2009 à 06:54
>>En revanche, les éléments
ajoutés depuis mon ajax n'ont aucune interractivité avec Jquer
c'est un peu plus clair effectivement !
parce que jquery a fait quelque chose sur les div au chargement
que vous ne lui demandez pas de faire après le retour d'ajax !
>>Comment faire pour que JQuery prenne en compte de nouveaux éléments créés à la volé?
ce doit être marqué dans sa doc !
peut-être un connaisseur de jquery passera-t-il par ici et donnera la réponse
0
romtrico064649 Messages postés 14 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 1 juillet 2009
1 juil. 2009 à 23:21
Bon voici la solution :


il faut donc réaffecter l'évènement aux nouveaux élément du DOM qui ont étés créés à la volé.


exemple :


$("div.model").append($(strHtml));
    $("area.obj").click(function() {
     occurenceClick($(this));
    });
    $("#MapModel").click(function() {
     modelClick($(this));
    });
    $("area.obj").dblclick(function() {
     occurenceDblClick($(this));
    });

Aprés avoir inséré grâce à append mon code html, je réaffecte les évènements sur les éléments de type area.obj. Ces élément n'existaient pas nativment dans le DOM..

RomTrico
0
Rejoignez-nous