jQuery .load () / .ajax () não está executando javascript no HTML retornado após anexado
Eu tentei usar.load()
e$.ajax
para obter algum HTML que precise ser anexado a um contêiner, mas o Javascript dentro do HTML retornado não está sendo executado quando eu o adiciono a um elemento.
Usando.load()
:
$('#new_content').load(url+' #content > *',function() {
alert('returned');
});
Eu também tentei mudar para uma chamada $ .ajax. Eu então extraí o script do HTML retornado após o qual eu o adicionei ao contêiner, mas mesmo problema, o JS não está sendo executado ou até mesmo anexado neste caso, e pelo que entendi, tentando anexar um<script>
para um elemento DOM como este é desaprovado?
Usando$.ajax
:
$.ajax({ url: url }).done(function(response) {
var source = $("<div>").html(response).find('#overview_script').html();
var content = $("<div>").html(response).find('#content').html();
$('#new_content').html(content);
$('<script>').appendTo('#new_content').text(source).html();
});
Idealmente, eu executaria esse javascript em um retorno de chamada depois de eu ter anexado o HTML, mas as variáveis estão sendo definidas para valores retornados de um controlador.
Então, em resumo, estou tentando obter algum HTML que contenha JS que precisa ser executado depois que o HTML tiver sido anexado, mas não tive sorte usando.load()
ou$.ajax()
como o script no HTML retornado desaparece ao anexá-lo ou ele não é executado.