我看到有人問這個問題,它被標記爲回答 - 但我不相信它回答我的進一步問題。如何阻止jQuery函數運行,直到jQuery庫已完全加載
我試圖在我的客戶頁面中嵌入日曆 - JS,CSS和jQuery在我的服務器上,所以爲了讓我的客戶只需添加一行代碼,我給他們的鏈接,鏈接然後動態加載所需的其他文件,然後使用document.write將文本框,下拉列表和按鈕添加到BOM中。
但是,要將jQuery日曆添加到文本框中,我必須確保jQuery已加載。如果它沒有,當頁面腳本點擊$(檢查jQuery,如果它沒有加載,所有的jQuery被忽略。我怎樣才能讓腳本停下來等待(沒有客戶不必按一個按鈕)
所以我給我的客戶這一行:
<script src="http://www.myserver.com/testjs/js/mt.js" language="javascript" type="text/javascript"></script>
的mt.js文件包含:
//JS to load files
function loadjscssfile(filename, filetype) {
if (filetype == "js") { //if filename is a external JavaScript file
var fileref = document.createElement('script')
fileref.setAttribute("type", "text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype == "css") { //if filename is an external CSS file
var fileref = document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref != "undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
loadjscssfile("http://www.myserver.com/testjs/css/custom-theme/jquery-ui-1.8.16.custom.css", "css");
loadjscssfile("http://www.myserver.com/testjs/js/jquery-1.6.2.min.js", "js");
loadjscssfile("http://www.myserver.com/testjs/js/jquery-ui-1.8.16.custom.min.js", "js");
//write GUI to DOM
document.write("<input id=\"calendar\" type=\"text\" />");
document.write("<input id=\"btnCheck\" type=\"button\" value=\"Check\" />");
document.write("<br /><div id=\"result\" />");
//Jquery to add calendar to textbox added above
$(function() {
$("#calendar").datepicker({
showOn: "button",
....
....
});
所以如果jQuery的/ UI/CSS不是招沒有加載,腳本會到達這裏,而不會將jQuery日曆添加到文本框中。
任何人都可以建議如何解決這個問題嗎?
謝謝,馬克
我想這個問題給你你的答案http://stackoverflow.com/questions/2011938/load-jquery-wait –
謝謝安迪 - 我也會嘗試。 – Mark