我正在尝试使用 Prototype 的库创建基于 AJAX 的 CMS 系统。在页面加载时,我有 HTML、页面标题和通过 JSON 返回的页面的附加 Javascript,我更新了主要区域的 HTML。我还有一个事件侦听器,用于侦听要单击的某些 ID。
听者在工作,
var TabMenu = {
selectedTab: 'main',
showTab: function(pid) { alert(pid); alert($(pid));
$(pid).addClassName('selected'); this.selectedTab = pid;
$(this.defaultTab).removeClassName('selected');
}};
加载后,我单击其中一个新选项卡,第一个“测试”警报成功提醒元素的 ID,但第二个警报 ($(pid)) 返回 null。我只能推测 AJAX 请求返回的 HTML 没有被评估并添加到 DOM,否则它会警告 [HTMLDivElement] 而不是“null”。
这是相关的 AJAX 调用:
new Ajax.Request(url, {
onSuccess: function(t) {
data = t.responseText.evalJSON();
Page.update(data.html, data.title, data.js);
Page.destroyLoader();
}
});
这是更新功能:
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 });
}
}
关于如何让这个工作的任何想法?