Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery在脚本元素中动态添加后不可见_Javascript_Jquery - Fatal编程技术网

Javascript jquery在脚本元素中动态添加后不可见

Javascript jquery在脚本元素中动态添加后不可见,javascript,jquery,Javascript,Jquery,我有一个脚本,通过将jQuery插入元素,动态加载jQuery: // pseudo code headElelement.insertBefore(script, firstChild); 然而,在调用之后,我立即开始使用jQuery,但此时它还没有定义。这怎么可能呢?如果你能发布相关代码,会更容易;-)但无论如何,这是一种可行的方法: <html> <head> <script type="text/javascript" src="path_to_

我有一个脚本,通过将jQuery插入
元素,动态加载jQuery:

 // pseudo code

 headElelement.insertBefore(script, firstChild);

然而,在调用之后,我立即开始使用jQuery,但此时它还没有定义。这怎么可能呢?

如果你能发布相关代码,会更容易;-)但无论如何,这是一种可行的方法:

<html>
<head>
  <script type="text/javascript" src="path_to_js/jquery.js"></script>
  <script type="text/javascript" src="path_to_js/your_js_code.js"></script>
  ...
</head>...

顺便说一句,通常最好在HTML的
末尾加载JS文件,这样一来,HTML首先开始显示,当JS代码仍在加载时,用户可以更快地“看到”页面。

这是因为jQuery尚未完全加载。只有在动态创建的脚本元素的
onload
事件中附加事件处理程序,加载jQuery之后,才需要执行jQuery代码,如下所示

script.onload = function() {
    // Put your jQuery code here.
    console.log(jQuery);
};
跨浏览器解决方案,支持IE8及以下版本的旧浏览器:

script.onload = script.onreadystatechange = function(event) {
    event = event || window.event;
    if (event.type === "load" || (/loaded|complete/.test(script.readyState))) {
        script.onload = script.onreadystatechange = null;
        // Put your jQuery code here.
        console.log(jQuery);
    }
};

如果在
$(函数(){})中插入jquery之后运行的代码
block?我只是在(typeof jQuery==='undefined'){}运行这种代码,它将永远运行。请发布相关代码,否则这只是猜测:伪代码是什么意思,你真的像
那样在HTML中加载jQuery吗?你在哪里尝试使用它,你说“在那次呼叫之后立即”,那么在头脑中?
script.onload = script.onreadystatechange = function(event) {
    event = event || window.event;
    if (event.type === "load" || (/loaded|complete/.test(script.readyState))) {
        script.onload = script.onreadystatechange = null;
        // Put your jQuery code here.
        console.log(jQuery);
    }
};