当我进行 AJAX 调用以替换 div 时,响应包含指向外部 .js 文件的脚本标记。但是,我无法让返回的 JS 执行。我试图 eval() 响应,但没有奏效。我还尝试从 onComplete 回调中调用外部 .js 文件中的函数,但这也不起作用。不知道还能做什么。我正在使用 mootools 核心 1.4.5
主页的JS
window.addEvent('domready', function(){
function ajaxfunc(i)
{
return function(e){
e.stop();
var requestData = new Request({
url: 'blah.php?cat=' + i,
evalScripts: true,
evalResponse: true,
onComplete: function(response){
$('rt-main').set('html', response);
}
});
requestData.send();
};
}
var total = $('cat_table').getChildren('div').length;
for(var i=1; i<=total; i++)
{
$('catClick'+i).addEvent('click', ajaxfunc(i));
}
});
返回的 HTML
<script src="listings.js" type="text/javascript"></script>
...(other markup, etc)
在该 listings.js 文件中
window.addEvent('domready', function(){
function gotoItem(i)
{
return function(e){
e.stop();
var id= i;
var requestData = new Request ({
url: 'blah.php?id='+id,
onComplete: function(response){
$('rt-main').set('html', response);
}
});
requestData.send();
};
}
$$('.itemBox').each(function(el){
el.getElement('a.itemClick').addEvent('click', gotoItem(el.id));
});
});
我工作的环境是 Joomla 3.1,以防万一。