gpt4 book ai didi

javascript - 从同一文件 append jQuery 后无法运行 jQuery 函数

转载 作者:行者123 更新时间:2023-11-28 18:25:36 25 4
gpt4 key购买 nike

我正在将多个脚本 append 到我的页面中,包括 jQuery、jQuery migrate...全部来自同一个 .js 文件

它看起来是这样的:

function appendScript(pathToScript, run) {
var head = document.getElementsByTagName("head")[0];
var js = document.createElement("script");
js.type = "text/javascript";
if(run == true){
js.onreadystatechange = function () {
if (this.readyState == 'complete') runFunctions();
}
js.onload = runFunctions;
}
js.src = pathToScript;
head.appendChild(js);
}
appendScript("http://code.jquery.com/jquery-latest.min.js");
appendScript("http://code.jquery.com/jquery-migrate-1.3.0.min.js", true);
function runFunctions(){
console.log('test') // all good till here
// here i have only jquery functions
$('#myDiv').addClass('test');
alert("this doesn't work");
....
}

我的问题是我无法运行 $(document).ready 或任何 jQuery 函数,只能运行 javascript。

也尝试过超时。另外我已经有 1 个 $(window).bind("load", function(){...} 所以我不需要再有 1 个

最佳答案

由于 jQuery Migrate 依赖于 jQuery,因此您需要等待加载下一个脚本。

这是一个工作示例(我还清理了一些变量)。

function appendScript(src, callback) {
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.type = "text/javascript";
if (callback) {
script.onload = callback;
}
script.src = src;
head.appendChild(script);
}

appendScript("https://code.jquery.com/jquery-latest.min.js", function() {
appendScript("https://code.jquery.com/jquery-migrate-1.3.0.min.js", function() {
document.body.innerHTML = 'Loaded jQuery version ' + jQuery.fn.jquery;
});
});

查看工作jsfiddle .

关于javascript - 从同一文件 append jQuery 后无法运行 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39233020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com