J'ai généré quelques éléments dans ma page en utilisant la méthode suivante. Par exemple,
$("#button"+caption).click(function(){
var firstDisplay = '<div id="firstDisp'+caption+'"><ul>';
for(var i=0;i<parents.length;i++){
firstDisplay=firstDisplay+'<li class="fClick">'+parents[i]+'</li>';
}
firstDisplay=firstDisplay+'</ul></div>';
$(firstDisplay).dialog();
});
et quand je crée un événement onclick pour 'fClass' comme ceci:
$(".fClick").click(function(){
alert("hey!");
});
Ça ne marche pas! Cependant, si je mets la fonction onclick dans l’autre fonction, juste après .dialog (), cela fonctionne! De nombreux éléments ont été créés de cette manière. Je ne peux donc pas mettre tous les événements onclick dans une même méthode. Y a-t-il un moyen de contourner cela? J'ai le même problème avec la méthode .append ainsi.
Changez-le en .on
ou .delegate
en fonction de la version de jQuery que vous utilisez.
À partir de jQuery 1.7+
$(document).on('click', '.fClick', function(){
alert("hey!");
});
Pour les anciennes versions de jQuery, utilisez delegate
$(document).delegate('.fClick', 'click', function(){
alert("hey!");
});
Ce que Vega a dit fonctionne parfaitement . Il y a un indice: Je pense que dans la deuxième ligne il y a une erreur . Vous pouvez probablement utiliser la méthode addClass car vous ne pouvez pas mettre id ou class dans le rendu .Voici un exemple:
var content = "<div>Hello, World</div>";
$("div").after(content);
$("last:div").addClass("mydiv");
Et la classe sera ajoutée mais je ne suis pas sûr que vous puissiez ajouter un identifiant.
Utilisez on
au lieu de click
:
$(".fClick").on('click',function(){
alert("hey!");
});
click
ajoute des gestionnaires de clic à .fClick
qui sont présents lorsque vous appelez $('.fClick').click({...})
. Les nouveaux éléments .fClick
ajoutés plus tard n'auront pas l'événement click. Mais lorsque vous utilisez on
, tous les éléments .fClick
auront un gestionnaire de clics, même s'ils sont ajoutés ultérieurement.
Lisez plus ici: http://api.jquery.com/on/
appelez le $ (document) .ready (fonction () à nouveau et ajoutez votre code ici . Le document est lu à nouveau (actualisé) et vous pouvez simplement appliquer votre code ici.