JQuery Ajout d'élément à la volé

Résolu
romtrico064649 Messages postés 14 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 1 juillet 2009 - 30 juin 2009 à 20:45
romtrico064649 Messages postés 14 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 1 juillet 2009 - 1 juil. 2009 à 23:11
Bonjour,
Merci de m'aider, ou bien d'essayer, je galère pas mal,

Voici mon problème

J'ai une page html comportant diverses
.
Grace à JQuery, je déclare une fonction click sur les div qui affichera un alert.

$(document).ready(function(){
    $("div").click(function () {
        alert("coucou");
    });
 });

ca marche nickel.
Ensuite, j'insère dans une autre partie de mon document d'autre div en AJAX. Je vois à l'écran que l'ajout est OK.
En revenche, les nouvelle div ajoutés ne sont plus liées à la fonction de click.

la fonction pour ajouter le code html contenant les div est :

$("#modelMap").append($(strHtml));
ou strHtml est égal à

coucou

 et modelMap est un id d'une div de mon document.

Comment dois je faire pour que les div soient liées à la fonction de click.

Merci les gars !

RomTrico

2 réponses

romtrico064649 Messages postés 14 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 1 juillet 2009
1 juil. 2009 à 23:11
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
3
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 à 07:08
Bonjour,
C'est normal donc, puisque tu n'ajoutes pas le traitement de onclick
    sur les nouveaux div ! ceux ajouté après la réponse du serveur !
Quand à te dire comment il faut le faire dans l'élément où tu
    as ajouté ces div : avec jquery, je l'ignore.
Un connaisseur de jquery va bien passer par ici.
Cordialement [mon Site] [M'écrire] Bul
0
Rejoignez-nous