相关疑难解决方法(0)

jQuery .load()/ .ajax()在追加后不在返回的HTML中执行javascript

我已经尝试使用.load()$.ajax获取一些需要附加到容器的HTML,但是当我将它附加到元素时,返回的HTML中的Javascript没有被执行.

使用.load():

$('#new_content').load(url+' #content > *',function() {
    alert('returned');
});
Run Code Online (Sandbox Code Playgroud)

我也试过切换到$ .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();

});
Run Code Online (Sandbox Code Playgroud)

理想情况下,我在附加HTML后在回调中运行此javascript,但变量被设置为从控制器返回的值.

总而言之,我试图获得一些HTML,其中包含需要在附加HTML后运行的JS,但我没有运气,.load()或者$.ajax()因为返回的HTML中的脚本在附加时消失,或者它根本不执行.

javascript ajax jquery load

17
推荐指数
1
解决办法
4万
查看次数

标签 统计

ajax ×1

javascript ×1

jquery ×1

load ×1