J'essaye de créer un système de CMS basé sur AJAX en utilisant la bibliothèque de Prototype. Sur un chargement de page, j'ai le HTML, le titre de page et le Javascript additionnel pour la page retournée par l'intermédiaire de JSON, et je mets à jour le HTML sur la région principale. J'ai aussi un écouteur d'événements qui écoute certains ID sur lesquels cliquer.Prototype Event.observe ne voit pas HTML retourné par AJAX
L'auditeur travaille,
var TabMenu = {
selectedTab: 'main',
showTab: function(pid) { alert(pid); alert($(pid));
$(pid).addClassName('selected'); this.selectedTab = pid;
$(this.defaultTab).removeClassName('selected');
}};
Après le chargement, je clique sur l'un des nouveaux onglets, et la première alerte « test » alertes avec succès l'ID de l'élément, mais la deuxième alerte ($ (pid)) renvoie null. Je ne peux que supposer que le HTML retourné par la requête AJAX n'est pas évalué et ajouté au DOM, sinon il alerterait [HTMLDivElement] au lieu de "null".
Voici l'appel AJAX pertinent:
new Ajax.Request(url, {
onSuccess: function(t) {
data = t.responseText.evalJSON();
Page.update(data.html, data.title, data.js);
Page.destroyLoader();
}
});
Et voici la fonction de mise à jour:
update: function(data, title, js) {
document.title = Global.title + title;
if (title != "") { $('HEADING').update(title); }
$('MAIN').update(data);
if (js != "") {
var nuJS = new Element('script', { type: 'text/javascript' }).update(js);
$('MAIN').insert({ top: nuJS });
}
}
Toutes les idées sur la façon dont je peux obtenir ce travail?
La requête AJAX est déclenchée lorsque l'utilisateur charge la page (côté droit de simulation frameset). Lorsque la page est construite, le javascript est là, et les onglets sont chargés. C'est en théorie, je devrais être en mesure d'appeler les onglets via leurs ID. Selon Firebug, les données ont été insérées dans le DOM. Dernière question ... le paramètre 'pid' alerte un identifiant. – Mike
@mike Que se passe-t-il si vous faites une alerte (document.getElementById (pid)); Même si alert (pid) donne une valeur, êtes-vous certain que le même id existe dans le DOM? – Helgi