簡體   English   中英

在ajax加載回調函數中調用getScript

[英]calling getScript inside an ajax load callback function

有人可以向我解釋一下。 這里的目標是通過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成功加載並執行腳本,而其他兩個卻沒有成功。

有關的問題: jQuery:在ajax load()之后運行腳本

部分答案: 為什么代碼B不起作用

在代碼B中,您按以下方式調用.load

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

本質上分為:

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

所以你調用showNewContent和傳球的處理結果放入.load

這不是您想要的。 相反,您應該將函數本身(而不是其結果)傳遞給load

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM