หลังจากค้นคว้ามากมายฉันก็แก้ปัญหานี้ด้วยคำใบ้จากofir_aghaiคำตอบเกี่ยวกับเหตุการณ์โหลดสคริปต์
โดยทั่วไปเราจำเป็นต้องใช้$
สำหรับโค้ด jQuery แต่เราไม่สามารถใช้งานได้จนกว่าจะโหลด jQuery ฉันเคยdocument.createElement()
เพิ่มสคริปต์สำหรับ jQuery แต่ปัญหาคือต้องใช้เวลาในการโหลดในขณะที่คำสั่งถัดไปใน JavaScript ที่ใช้$
ล้มเหลว ดังนั้นฉันจึงใช้วิธีแก้ปัญหาด้านล่าง
myscript.jsมีโค้ดที่ใช้ jQuery
main.jsเพื่อโหลดทั้งไฟล์jquery.min.jsและmyscript.jsตรวจสอบให้แน่ใจว่าโหลด jQuery แล้ว
รหัส main.js
window.load = loadJQueryFile();
var heads = document.getElementsByTagName('head');
function loadJQueryFile(){
var jqueryScript=document.createElement('script');
jqueryScript.setAttribute("type","text/javascript");
jqueryScript.setAttribute("src", "/js/jquery.min.js");
jqueryScript.onreadystatechange = handler;
jqueryScript.onload = handler;
heads[0].appendChild(jqueryScript);
}
function handler(){
var myScriptFile=document.createElement('script');
myScriptFile.setAttribute("type","text/javascript");
myScriptFile.setAttribute("src", "myscript.js");
heads[0].appendChild(myScriptFile);
}
วิธีนี้ได้ผล ใช้loadJQueryFile()
จากmyscript.jsไม่ได้ผล $
ทันทีที่ไปถึงคำสั่งต่อไปซึ่งการใช้งาน