Mejor preguntar en el foro de ajax. Pero te adelanto: el código javascript presente en la respuesta ajax no es interpretado como tal sino como texto. Para que el código javascript incluído en la respuesta ajax se interprete como tal hay que tratar esa respuesta, por ejemplo usando un prototipo como este:
Código:
String.prototype.tratarResponseText=function(){
var pat=/<script[^>]*>([\S\s]*?)<\/script[^>]*>/ig;
var pat2=/\b\s+src=[^>\s]+\b/g;
var elementos = this.match(pat) || [];
for(i=0;i<elementos.length;i++) {
var nuevoScript = document.createElement('script');
nuevoScript.type = 'text/javascript';
var tienesrc=elementos[i].match(pat2) || [];
if(tienesrc.length){
nuevoScript.src=tienesrc[0].split("'").join('').split('"').join('').split('src=').join('').split(' ').join('');
}else{
var elemento = elementos[i].replace(pat,'$1');
nuevoScript.text = elemento;
}
document.getElementsByTagName('body')[0].appendChild(nuevoScript);
}
return this.replace(pat,'');
}