在ajax加载回调函数中调用getScript

时间:2013-01-19 11:48:18

标签: javascript jquery ajax

有人可以向我解释一下。 这里的目标是通过ajax调用加载外部html,然后加载并执行与该html代码关联的外部脚本。

代码A:

$('#content').load(toLoad,function(){
        $.getScript("toLoadScript.js");
});

代码B:

$('#content').load(toLoad,showNewContent());
function showNewContent() {
    $.getScript("toLoadScript.js");
}

代码C:

$('#content').load(toLoad,showNewContent);
function showNewContent() {
    $.getScript("toLoadScript.js");
}

为什么只有Code C成功加载并执行脚本而另一个2没有。

Jquery: Run script after ajax load()

相关的问题

1 个答案:

答案 0 :(得分:0)

部分答案:为什么代码B不起作用

在代码B中,您正在调用.load,如下所示:

$('#content').load(toLoad,showNewContent());

基本上分为:

var newContent = showNewContent();
$('#content').load(toLoad,newContent);

所以你要调用showNewContent并将结果传递给.load

这不是你想要做的。相反,您应该将函数本身(而不是其结果)传递给load

$('#content').load(toLoad,showNewContent);