Événement sur une div rajoutée

Par WoBuGs, il y a 15 ans


Bonjour à tous, j'ai un petit problème avec un script qui utilise jQuery :
J'utilise de l'AJAX pour charger des données et parois elles j'ai une div qui, quand elle est cliquée permet de supprimer le contenu.
Le problème est que après avoir rajouté les données avec un .append(data), la div apparaît bien mais quand je clique dessus il ne se passe rien alors que ça marche bien avec une div qui était au début du chargement de la page. Voici la partie du script concernée :

$(".modify").click(function(){
   id = $(this).attr("id");
   div = $(this);
   $.post("action.php",{action :delete,id: id},function(){
         div.fadeOut();
      });
});

Voilà, j'espère ne pas avoir fais d'erreur dans le code car je le recopie de tête.

4 réponses

wYm, il y a 15 ans

Bon, je sais que ce n'est pas vraiment ce que tu attendais comme réponse, mais je te conseille de faire de l'ajax sans JQuery (classique), puisque moi même j'ai eu des problème en le faisant avec JQuey. Bref, je te propose ce tuto je pense qu'il pourra t'aider : Site du zéro | Ajax

WoBuGs, il y a 15 ans

OK, je vais y penser, mais pas pour cette page car à part ça, tout fonctionne bien.

thierrysudfr, il y a 15 ans

Bonsoir,
Remplace $(".modify").click(function(){
par $(".modify").live('click',function(){

En effet, en mettant à jour une partie de ta page avec ajax, les nouveaux éléments (dont ton .modify) ne sont plus "écoutés" par jquery. La fonction live() est là pour ça !

WoBuGs, il y a 15 ans

Merci, ça marche super !