2017-04-06 35 views
0

我想寫一個檢查jQuery的小檢查,如果不存在,動態加載一個副本,以便腳本可以由它運行。它設置爲不發生衝突,以防其他情況出現時也使用$,然後運行腳本 - 一個小菜單。jQuery在動態加載後無法正確訪問?

然而,在實際測試這個jQuery從腳本加載,但未能執行:「jQuery沒有定義。」

我知道jQuery必須先使用它的任何函數之前,但有什麼辦法解決這個問題時,它是動態安裝?

(function() { 
    console.log("Loaded"); 
    if(!window.jQuery) { 
     var script = document.createElement('script'); 
     script.type = "text/javascript"; 
     script.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"; 
     document.getElementsByTagName('head')[0].appendChild(script); 
     jQuery.noConflict(); 
    } 
})(); 
+0

如果你的菜單使用jQuery,爲什麼不在上面的IF中添加菜單代碼?代碼太多了嗎?這裏的問題是,你運行一個需要jQuery BEFORE的代碼,即使jQuery被加載。 –

回答

1

您不等待腳本加載完畢。

script.onload = function(){ 
    // do whatever 
}; 
+0

就是這樣。我意識到這是一個onLoad問題,但是試圖將它寫入文檔。謝謝! – Merlin