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