如何知道JQuery是否完成加载

这个问题在这里已经有了答案:

  • 如何在另一个JavaScript文件中包含JavaScript文件? 51个答案

  • 您将不得不编写代码来检测何时加载了动态加载的脚本,不幸的是,它在某些旧版浏览器中的工作方式稍有不同,因此它不像以前那么简单。 这里有一篇很好的参考文章,介绍如何做到这一点:http://www.ejeliot.com/blog/109

    以下是该文章的一些代码:

    function loadScript(sScriptSrc, oCallback) {
    
        var oHead = document.getElementsByTagName('head')[0];
        var oScript = document.createElement('script');
    
        // make sure callback isn't run more than once
        function runCallback() {
            if (oCallback) {
                oCallback();
                oScript.onload = oScript.onreadystatechange = null;
                oCallback = null;
            }
        }
    
        oScript.type = 'text/javascript';
        // most browsers
        oScript.onload = runCallback;
        // IE 6 & 7
        oScript.onreadystatechange = function() {
            if (this.readyState === 'complete') {
                runCallback();
            }
        }
        oScript.src = sScriptSrc;
        oHead.appendChild(oScript);
    }
    

    或者,您可以使用其中一个为您工作的小型库。 你可以在这里看到一些列表:http://microjs.com/#loader。 虽然我不确定你想用另一个库来协助加载你的主库。


    尝试onload事件:

     //.....
     script.onload = function(){
         alert('jQuery is loaded succesfully').
     };
     script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js";
    

    对jfriend的回答赞不绝口。 回调很性感。

    第二个裂缝在它。

    function loadJQ(callback) {
      if(!window.jQuery) {
        // Create jQuery script element.
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = 'path/to/jquery.js';
        document.body.appendChild(script);
    
        script.onload = function(){ callback(jQuery); };
        // IE 6 & 7 ala jfriend00
        script.onreadystatechange = function() {
          if (this.readyState == 'complete') callback(jQuery);
        }
      } else {
        callback(jQuery);
      }
    }
    

    调用

    loadJQ(function($){
      alert($ === jQuery); // true. jquery is loaded.
    });
    
    链接地址: http://www.djcxy.com/p/42483.html

    上一篇: How to know if JQuery has finished loading

    下一篇: Using a javascript file in another js file