2009-11-20 5 views
0

Je reçois du contenu dynamique avec Ajax et je l'ai mis dans un div, mais le problème est que j'ai différents ID pour certains divs enfants (à partir du contenu dynamique). J'ai donc ajouté des sélecteurs pour ces divs, mais comme je l'ai dit, ils sont chargés dynamiquement et cela signifie qu'ils ne sont pas visibles avant d'être chargés (à partir d'un autre fichier) et insérés dans le div. Le problème vient quand j'insère le contenu dynamique. jQuery ne peut pas sélectionner ces divs :(Y at-il une solution possible pour mon problèmejQuery ne peut pas attr div

Hmm peut-être mon explication est pas bon donc je parle avec le code: D

Exemple: Ce est le vide div <div id="div"></div>

Voici le code jQuery

$(document).ready(function(){ 
$.get("file.php", function(data){ 
$("#div").html(data); 


$("#somediiv").click(function(){ 
alert("Yeah"); 
}); 

$("#somediv").click(function(){ 
$.get("otherfile.php", function(data){ 
$("#div").html(data); 
}); 
}); 

$("#somediv2").click(function(){ 
$.get("file.php", function(data){ 
$("#div").html(data); 
}); 
}); 

}); 
});

Tout fonctionne jusqu'à ce que le nouveau contenu vient. Dans le nouveau contenu lorsque le « file.php » est chargé il y a un div avec id « som ediiv "et quand je clique dessus" otherfile.php "va être chargé et dans le contenu de cette div il y a une autre div avec id" somediiv ", mais quand jQuery ne peut pas attraper le clic :(

Répondre

1

Je pense que vous devez utiliser live(). Ou attachez l'événement dans le rappel de $.get().

0

Vous souhaitez que chaque div chargé dynamiquement contienne également la fonctionnalité de clic du div d'origine? powtac a raison, les événements en direct vous aideront. Quelque chose comme:

$(".someDivClass").live("click",function(){ 
    $.get("yourFile",function(data){ 
    $(this).append(data); 
    }); 
}); 

C'est en supposant que vous voulez ajouter les données à la div que vous cliquez dessus, qui n'a pas été vraiment spécifié. Vous devez également vous assurer que les données renvoyées contiennent la div avec la classe "someDivClass".

Les événements en direct vous inscrire à un sélecteur correspondant ainsi que tous les matches à venir (par exemple qui ont été ajoutés dynamiquement)

+0

La page est chargée et le contenu « fichier.php » est inséré dans « div » maintenant il contient 2 divs avec id " somediiv "et" somediv "maintenant tout est parfait, mais quand je clique sur" somediv "et il charge le nouveau contenu il y a" somediv "et" somediv2 "et jquery ne peut pas les attraper :( – Matt