如何使用jquery.load()加载脚本?

Ste*_*ffi 0 url jquery load selector

我有个问题.

在我的文件content.html中,我有脚本.使用load()jQuery函数加载时,页面显示但脚本不起作用.我认为这是因为选择器.

我怎么解决这个问题?

编辑:

$(document).ready(function(){
$('#content').load('content.html #toLoad', function(){});
})
Run Code Online (Sandbox Code Playgroud)

谢谢

Jam*_*rgy 5

当你说"脚本不起作用"时你的意思是你在通过ajax加载的页面中有javascript吗?

它永远不会起作用,至少不是直接起作用.

你有两个选择.从您加载的内容中解析出脚本,然后使用eval它来运行它.

更好的方法是使用$.getScript加载(和执行)javascript.如果要将javascript与已加载的HTML绑定,则需要一些约定来标识脚本.例如,您可以在动态加载的html中包含一个标记:

<span style="display:none;" id="script">/scripts/somescript.js</span>

然后在加载内容时查找带有id ="script"的span,如果找到它,则用于$.getScript加载它标识的脚本.

例...

$.load('content.html #toLoad', function(data){
    var $script = $(data).find('span[id=script]');
    if ($script.length) {
        $.getScript($script.html());
        // remove the span tag -- no need to render it
        $script.remove();
    }
    $('#content').html(data);
});
Run Code Online (Sandbox Code Playgroud)