0

有人可以向我解释一下吗。这里的目标是通过 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");
}

为什么只有代码 C 成功加载并执行脚本,而其他 2 没有。

与以下相关的问题:Jquery:在 ajax load() 之后运行脚本

4

1 回答 1

0

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

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

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

这基本上分解为:

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

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

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

$('#content').load(toLoad,showNewContent);
于 2013-01-19T16:52:35.273 回答