jQuery .load () / .ajax () не выполняет javascript в возвращенном HTML после добавления
Я пытался использовать.load()
а также$.ajax
чтобы получить некоторый HTML, который нужно добавить в контейнер, но Javascript внутри возвращенного HTML не выполняется, когда я добавляю его в элемент.
С помощью.load()
:
$('#new_content').load(url+' #content > *',function() {
alert('returned');
});
Я также попытался переключиться на вызов $ .ajax. Затем я извлек сценарий из возвращенного HTML, после чего я добавил его в контейнер, но та же проблема, JS не выполняется или даже не добавляется в этом случае, и, насколько я понимаю, пытаюсь добавить<script>
на элемент DOM, как это осуждается?
С помощью$.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();
});
В идеале я должен запускать этот javascript в обратном вызове после добавления HTML, но переменные устанавливаются в значения, которые возвращаются из контроллера.
Итак, в общем, я пытаюсь получить некоторый HTML, который содержит JS, который должен быть запущен после того, как этот HTML был добавлен, но мне не повезло, используя.load()
или же$.ajax()
поскольку скрипт в возвращенном HTML-файле либо исчезает при добавлении, либо не выполняется вообще.