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 に答える