J'écris une page qui utilise beaucoup d'édition et de mise à jour in situ à l'aide de jQuery for AJAX.Réponse à l'événement click de l'élément ajouté au document après chargement de la page
Je suis venu accross un problème qui peut être mieux résumée par le flux de travail décrit ci-dessous:
- En cliquant sur « element1 » sur la page de résultats dans un
- données jQuery AJAX POST est reçu au format JSON
- les données reçues au format JSON
- les données reçues sont utilisées pour mettre à jour un « résultats » élément existant dans la page
- les données reçues est un formulaire HTML réel
- Je veux jQuery être responsable de la forme lorsque POSTer le bouton de formulaire est cliqué
Le problème se pose au point 6 ci-dessus. J'ai le code dans ma page principale qui ressemble à ceci:
$(document).ready(function(){
$('img#inserted_form_btn').click(function(){
$.ajax({'type': 'POST', 'url': 'www.example.com', 'success': function($data){
$(data.id).html($data.frm);
}), 'dataType': 'json'}
});
});
Cependant, l'événement n'est pas déclenché. Je pense que cela est dû au fait que lorsque le document est chargé, l'élément img # inserted_form_btn n'existe pas sur la page (il est inséré dans le DOM suite à un clic sur la page (non affiché dans le code ci-dessus). garder la question courte)
Ma question est donc: comment puis-je obtenir jQuery pour être en mesure de répondre aux événements ayant lieu dans des éléments qui ont été ajoutés au DOM une fois la page chargée
Notez cette question qui a une discussion sur .on, .live, .delegate et .click http://stackoverflow.com/questions/10983244/unsure-about-on-method/10983259#comment14346416_10983259 - en ajoutant cette référence pour garder le site/contexte de cette question à jour –