div を置き換えるために AJAX 呼び出しを行うと、応答に外部の .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 です。